问题描述
我已经实现了一个自定义 Json Formatter,用于在我的应用程序中使用 log-back 进行日志记录。在自定义 JSON 格式化程序中,我添加了几个自定义字段,我想动态更改它们的值,即在记录时更改其值。我怎样才能做到这一点。 下面是我的 CustomJsonFormatter 代码
public class CustomJsonFormatter extends JacksonjsonFormatter {
@Override
public String toJsonString(Map map) throws IOException {
map.put(TransformerConstants.APPNAME,TransformerConstants.USER_ID);
map.put("errorCode,404);
Map<String,String> memoryMap = new HashMap<>();
memoryMap.put("committedMemoryMB",String.valueOf(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getCommitted()/TransformerConstants.BYTES_TO_MB));
memoryMap.put("usedMemoryMB",String.valueOf(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed()/TransformerConstants.BYTES_TO_MB));
memoryMap.put("maxMemoryMB",String.valueOf(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax()/TransformerConstants.BYTES_TO_MB));
memoryMap.put("initialMemoryMB",String.valueOf(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getinit()/TransformerConstants.BYTES_TO_MB));
map.put("systemMemory",memoryMap);
return super.toJsonString(map);
}
<appender name="JsonLogger"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
<jsonFormatter class="com.app.config.CustomJsonFormatter" />
<appendLineseparator>true</appendLineseparator>
<timestampformat>yyyy-MM-dd' 'HH:mm:ss.SSS</timestampformat>
</layout>
</appender>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)