開発者がNLogを使用してオブジェクトをJSONとしてログに記録できるようにします。これを行うには、nLogに送信する前に、またはターゲットに送信する前に、いくつかのロジックを実装する必要があります。ログに記録する前にNLogのレベルを確認しますか?
私は自分でTarget(TargetWithLayout)
をビルドできますが、この特定のターゲット/ロガーの設定からログレベルを確認する方法はありませんか?もう1つの欠点は、使用する各ターゲット(EventLog、File、WebServiceなど)に対して新しいTargetWithLayout
クラスを作成する必要があることです。
もう1つの解決策は、NLogを使用する私のLogHandler
で行うことです。オブジェクトを翻訳する必要があるかどうかを知る唯一の方法は、設定ファイルからすべてのロガーを読み取ることです。もしそれらのオブジェクトがログオブジェクトに設定されていれば、それを直列化します。私はLogHandler
からこの情報を確認できるかどうかはわかりません(手動では行いません)。あなたはログファイルをあなたにJSONを書くためにNLogのJSONのレイアウトを使用することができます
ログに送信する必要があるオブジェクトが1つしかない場合は、いいです。しかし、この場合、どのクラスもJSONとしてログに記録できるはずです。ですから、オブジェクトをJSONにセリライズして文字列として出力することです。ただし、nlogの設定に従ってログに記録されない場合は、オブジェクトをセリライズする必要はありません。 – Banshee