1
我使用杰克逊有日志输出为JSON。
的事情之一是,我们允许使用以下语法登录:杰克逊收集为了<Object>属性顶层JSON输出字符串
log.info("yourMessage {}", innerMessageObject, Meta.of("key", ObjectValue))
输出I HAVE
{
"level": INFO,
... classic logging attributes
"metadata": {
"object1": "value 1",
"object2": { ... }
...
}
}
输出I WANT
{
"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
属性序列化为顶级属性。
看来我不能用@JsonUnwrapped
因为this issue,我也试过this solution但不能看到如何实现它。
你有什么想法?
谢谢:)
感谢您的回答,它需要一些修改,但我会试一试! – ogdabou
谢谢你的作品:) – ogdabou