ログ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
この SDK には独自のログ機能が付属しています。このページでは、その使用方法と拡張方法について説明します。
メッセージのログ記録
メッセージのログ記録
ログ機能には、IMClient で直接アクセスできます。
デバッグ メッセージの書き込み:
情報メッセージの書き込み:
警告メッセージの書き込み:
エラーメッセージの書き込み:
ログ レベル
ログ レベル
MinimumLogLevel プロパティで最小ログ レベルを設定できます。
次の 4 つのログ レベルが定義されています。
- デバッグ: デバッグ情報をログに記録します。
- 情報: スクリプトの実行に関する一般的な情報をログに記録します。
- 警告: 警告をログに記録します。
- エラー: エラーをログに記録します。
最小ログ レベル
最小ログ レベル
各ログ レベルには次の優先順位があります (最も低い優先順位は 1 です)。
- デバッグ
- 情報
- 警告
- エラー
スクリプトによるログ記録が始まるレベルを最小ログ レベルとします。最小ログ レベル未満で発生したログは除外されます。選択したログ レベルとそのレベルでログ記録の対象になるログ レベルとの対応関係を以下の表に示します。
| 選択したレベル | ログ記録の対象になるレベル |
|---|---|
| デバッグ |
|
| 情報 |
|
| 警告 |
|
| エラー |
|
次の 4 つのプロパティから、最小ログ レベルに応じて true または false が返されます。
IsDebugEnabledIsInfoEnabledIsWarnEnabledIsErrorEnabled
イベント
イベント
ILogger インターフェイスでは OnLog イベントを確認できます。何らかがログに記録される直前にイベントが発生します。最小ログ レベル未満で何らかがログに記録されてもイベントは発生しません。
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 のロガー
この SDK では、次の 2 つのロガーを実装しています。
NullLogger
このロガーはログを処理しませんが、イベントは発行します。これは、IMClient の既定のロガーです。
ConsoleLogger
ログ メッセージをコンソールに書き込みます。既定では、メッセージは次のテンプレートに従っています。
このテンプレートは、UseTemplate を false に設定することで無効にすることができます。