我有这个日志相当严重的Web应用程序。我们已经为每个请求线程实施了对MDC
的调用,以便能够在我们的日志中跟踪用户。记录可选键值
一个的LogMessage可以看看如下:
INFO [2017-10-09 10:10:55,841] user_uuid=123-123-123 com.myapp.SomeClass: Some log message...
现在的问题是,大部分的时间,没有当前用户的存在,我们没有在上面的日志例子中user_uuid
现场使用。因此,相反,它会是这样的:
INFO [2017-10-09 10:10:55,841] user_uuid= com.myapp.SomeClass: Some log message...
有没有,如果没有MDC值不写在日志中的MDC键&值的方法吗?一些日志格式我还没有找到?
我希望它看起来像这样,如果没有MDC价值发现:
INFO [2017-10-09 10:10:55,841] com.myapp.SomeClass: Some log message...
以上(MDC)的实例配置,像这样:
%-5p [%d{ISO8601,UTC}] user_uuid=%mdc{user_uuid:-} %c: %m%n%rEx
您可以只显示完整的MDC(这当然要求您只存储重要信息),那么它只会记录存在的内容。在你的例子中,你已经对'user_uuid ='部分进行了硬编码,所以这不会去任何地方。 – Kayaman
请参阅https://stackoverflow.com/questions/24616745/how-to-conditionally-add-text-from-mdc-on-a-log4j-pattern以获得重复。 – Kayaman