Slf4j+logback实现JSON格式日志输出方式

Slf4j+logback实现JSON格式日志输出

依赖


org.projectlombok
lombok
1.18.8
provided


org.slf4j
slf4j-api
1.7.28


net.logstash.logback
logstash-logback-encoder
6.1


ch.qos.logback
logback-classic
1.2.3


ch.qos.logback
logback-access
1.2.3

logback.xml


            
                
                    
                        {
                            "date":"%date{\"yyyy-MM-dd HH:mm:ss.SSS\",UTC}",
                            "level":"%level",
                            "msg":"%msg"
                        }
                    
                
            
            UTF-8
        

输出:

{"date":"2019-09-17 08:29:20.879","level":"INFO","msg":"{\"tags\":{\"namespace\":\"service.MQTT.push\",,\"metric.correct\":true}}"}
{"date":"2019-09-17 08:30:20.784","level":"INFO","msg":"{\"tags\":{\"namespace\":\"service.MQTT.command\",\"metric.correct\":true}}"}
{"date":"2019-09-17 08:30:20.854","level":"INFO","msg":"{\"tags\":{\"namespace\":\"service.MQTT.push\",\"metric.correct\":true}}"}

logback 记录JSON日志

首先在你要记录的json日志中需要对某个类单独配置他的logger

如图

Slf4j+logback实现JSON格式日志输出方式_第1张图片

然后在你对应的类中调用 该logger

如图

Slf4j+logback实现JSON格式日志输出方式_第2张图片

然后在这里你需要记录的位置记录你需要的json 数据 这里的javaben toString方法已经重写了,返回的的字符串是json字符串

// 此处添加操作日志记录
		ES_LOG.info(new InOutLogModel(outBoundParamsModel.getScanCode(), outboundResult.getFormCode(),
				outBoundParamsModel.getMerchantId() + "", outBoundParamsModel.getSource(), "此处在逐单出库!",
				new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), outBoundParamsModel.getUserInfo())
						.toString());

最后在服务器上查看刚才所记录的日志如图

Slf4j+logback实现JSON格式日志输出方式_第3张图片

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的