1
JSONとしてログ出力するためにジャクソンを使用しています。
物事は、我々は次の構文でログインできるようにということである。Jackson Collection <Object>トップレベルのJSON出力文字列
log.info("yourMessage {}", innerMessageObject, Meta.of("key", ObjectValue))
OUTPUT私は私が望む
{
"level": INFO,
... classic logging attributes
"metadata": {
"object1": "value 1",
"object2": { ... }
...
}
}
OUTPUT
{
"level": INFO,
... classic logging attributes
"object1": "value 1",
"object2": { ... }
...
}
マイログPOJOを持って
@Data
class JsonLog {
@JsonIgnore
private static final ObjectMapper mapper = JsonLog.initMapper();
private final String message;
private final String class_name;
private final Collection<Object> metadata;
private final Marker marker;
private final String level;
private final Long timestamp;
private final String thread;
private final String logger;
private final LoggerContextVO logger_context;
private final Map<String, String> environment_vars;
}
metadata
属性を最上位属性としてシリアル化するだけでは成功しません。
this issueのために@JsonUnwrapped
を使用できないようですが、私もthis solutionを試しましたが、実装方法はわかりません。
アイデアはありますか?
ありがとうございました:)
あなたの答えをありがとう、それはいくつかの変更が必要ですが、私はそれを試してみましょう! – ogdabou
ありがとうございます:) – ogdabou