我需要为每个请求维护一个唯一的Id,因为我们在另一个文件中写入信息和错误日志,为了跟踪这个请求,我们得到了这个错误和信息消息。我将Unicode作为每个方法的附加参数传递,这看起来很糟糕。春天有任何替代选择可以处理这些东西。
示例跟踪标识:
信息-file.log
uniqueId1 request1
错误file.log
uniqueId1 error1
uniqueId2 error2
为了实现这一点,我们在控制器,服务和dao层的每个方法中传递uniqueId。
答案 0 :(得分:0)
如果您使用log4j,则可以在控制器/服务的最开始使用一次
MDC.put("uniqueId", your id here);
然后,在你的log4j配置中,你可以像这样使用%X {uniqueId}:
log4j.appender.default.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c [%X{uniqueId}] -> %m%n
完成后(在请求结束时)您只需:
MDC.remove("uniqueId");