Ami*_*wal 6 java linux logging log4j slf4j
Using log4j with Sl4j and ran into a weird issue, I have following log statement.
log.trace("Foo Request object value : {} foo params: {}" , foo==null, foo);
Run Code Online (Sandbox Code Playgroud)
如果foo具有bar值,它将在我的本地日志中显示在下面。
Foo Request object value : false foo params: bar
Run Code Online (Sandbox Code Playgroud)
但是,当我将代码部署到生产环境中时,它显示如下:
Foo Request object value : false
Run Code Online (Sandbox Code Playgroud)
请注意,上面甚至没有显示“ foo params:”(这是我的日志记录语句中的字符串),而不必打印它的param值。
同样因为foo不为null,这就是打印第一个参数值false的原因,然后为什么该对象本身不作为第二个参数的一部分被打印,更有趣的是,它在日志记录语句中的对应字符串也没有被打印。
简而言之,我想了解在生产环境中为什么会发生这种情况以及如何使它起作用。
小智 0
您可以在maven对日志库进行着色后尝试您的构建吗,很多时候服务器端库优先于您提到的库,从而导致版本冲突或代码中出现意外行为等问题,就像您的情况一样。如果可能,请尝试此选项,在最坏的情况下,如果这不起作用,它将排除其中一种可能性,在这种奇怪的情况下,我发现最好在缩小解决方案范围之前排除尽可能多的可能情况。
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |