API リクエスト/レスポンスを json 形式でログに記録したいと考えています。
予想される LogEntry は次のようなものです
{
"timestamp" : "...",
"level" : "DEBUG",
"headers" : [
"header1" : "value1",
"header2" : "value2",
"header3" : "value3"
],
"requestPayload" : "<Request Json>" // prefereablly as sub-document, worst case string is fine.
"labels" : [ //key fields which can be used for searching the logentry
"searchField1" : "....",
"searchField2" : "....",
"searchField3" : "...."
]
}
私の質問は:
Logback を使用して、ネストされたフィールド (上記の例のヘッダー、ラベル、requestPaylod など) を json サブドキュメントとしてログに記録する方法。MDC を試してみましたが、「文字列、文字列」のみのマップに限定されており、最初のレベル以降のすべてのフィールドを文字列と見なします。
このためのカスタム ロガーを作成するのは嫌いであり、実績のあるログ フレームワーク (logback/log4j) の優れた機能を使用して、ログ レベルやログ イベントのタイム スタンプなどを制御したいと考えています。