伐採
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
SDKには、独自のログが付属しています。このページでは、その使用法と拡張方法について説明します。
メッセージのロギング
ロギングには、IMClientから直接アクセスできます。
debugメッセージを書く:
infoメッセージを書く:
warningメッセージを書く:
errorメッセージを書く:
ログ記録レベル
最小ログ・レベルは、MinimumLogLevelプロパティーで設定できます。
ロギングには4つのレベルが定義されています。
-
Debug: デバッグ情報のログに使用します。
-
Info: スクリプトの実行に関する一般的な情報をログに記録するために使用されます。
-
Warn: 警告をログに記録するために使用されます。
-
Error: ログエラー。
最小ログ・レベル
ロギングレベルはプライオリティ順に並べられます(1が最も低いプライオリティです)。
-
Debug
-
Info
-
Warn
-
Error
minimum log levelをスクリプトがログ記録を開始するレベルとして定義します。minimum log levelは、下位レベルのログを除外します。次の表では、選択したログ レベルと含まれるログ レベルとのマッピングについて説明します。
|
選択したレベル |
含まれるレベル |
|---|---|
|
デバッグ |
|
|
情報 |
|
|
警告する |
|
|
エラー |
|
次の4つのプロパティは、最小ログ レベルに応じてtrueまたはfalseを返します。
-
IsDebugEnabled
-
IsInfoEnabled
-
IsWarnEnabled
-
IsErrorEnabled
イベント
ILoggerインターフェイスは、OnLogイベントを公開します。何かがログに記録されるbefore、イベントが発生します。このイベントは、何かが最小ログレベルより低くログに記録された場合には発生しないことに注意してください。
LogEventArgsには次の3つのプロパティがあります。
-
LogLevel: ログに記録されたメッセージのレベル。
-
Message: メッセージ。
-
Exception: 例外オブジェクト (存在する場合)。
パフォーマンス
単純な文字列、静的文字列、または定数文字列の場合は、文字列を作成して直接ロガーに渡します。
IOを構築する必要がある文字列の場合は、ログ レベルが無効になっているときにログが無駄なオーバーヘッドを引き起こさないように、System.Func (ラムダを含む) をロガーに渡してください。この方法では、IOは行われません。
さらに、デバッグ メッセージは運用環境では無効になっている可能性が高いため、常にSystem.Funcを使用して渡すこともお勧めします。これにより、デバッグが無効になっている場合のオーバーヘッドが回避され、すべてのデバッグ ステートメントをコードから削除する必要はありません。これにより、何千ものデバッグ ログ ステートメントがあっても、オーバーヘッドは最小限に抑えられます。
カスタムロガーの作成
カスタムロガーを作成するには、Stylelabs.M.Sdk.Contracts.Logging.ILoggerインターフェースを実装する必要があります。次に、IMClientのLoggerプロパティを設定します。
SDKには、ILoggerを実装する際の作業を大幅に削減する基本クラスが付属しています。基本クラスはStylelabs.M.Sdk.Models.Logging.LoggerBaseです。すでにイベントの発生と最小ログレベルのチェックを処理しています。
実装する必要があるのは、次のメソッドのみです。
-
protected void LogDebug(string message)
-
protected void LogInfo(string message)
-
protected void LogWarn(string message)
-
protected void LogError(string message, Exception exception = null)
-
protected void LogError(Exception exception)
SDKロガー
SDKには、2つのロガー実装が付属しています。
ヌルロガー
このロガーはログをまったく処理しませんが、イベントを発生させます。これは、IMClientのデフォルトのロガーです。
コンソールロガー
ログメッセージをコンソールに書き込みます。デフォルトでは、メッセージは次のようにテンプレート化されています。
テンプレートを無効にするには、UseTemplateをfalseに設定します。
関連項目
-
スクリプティングSDKでのログ記録