我正在Weblogic服务器上运行一个web应用程序(我不太熟悉)。
通过JVM,将带有日志级调试的log4j配置传递给应用程序。在日志文件中,我还可以找到一些调试级别的日志条目。
到目前一切尚好。
在调试期间,我发现对logger.debug()的一些调用不在日志文件中。
私有静态最终org.slf4j.Logger记录器= LoggerFactory.getLogger(ActionCtr.class);
方法调用肯定会命中,但不会将任何内容写入文件。
如果我在调试过程中迈出了一步,就会在记录器中看到: org.slf4j.impl.JDK14LoggerAdapter(com.example.application.ActionCtr) "java.util.logging.FileHandler.pattern“-> "%h/java%u.log”
这给我带来了一些问题(因为我无法更改正在运行的应用程序):
1)它所使用的应用程序怎么可能是使用一个混合的log4j和java.util.logging
2)如何确定在哪些类中使用什么?
3)没有%h/java%u.log (~/java*..log),所以我尝试提供一个java.util.logging一致性属性文件,但这并没有改变--我如何确定运行中的记录器从何处获得配置,以正确配置它?
发布于 2018-04-27 03:46:16
1)它所使用的应用程序怎么会使用混合的log4j和java.util.logging
任何这些日志记录框架都可以由应用程序直接使用,也可以由应用程序使用的依赖库使用。不需要太多的依赖关系就可以得到一群日志框架搭便车者。
SLF4J手册解释了日志记录框架是如何与所有其他框架发生冲突的。这就是你看到org.slf4j.impl.JDK14LoggerAdapter的原因。
我如何确定在哪些类中使用什么?
我如何确定运行中的记录器从何处获得其配置,以便对其进行配置?
JConsole工具可以在运行时访问JUL记录器。它还将显示所有系统属性,其中可能包括logging.properties文件的路径。
如果应用程序是以一种非标准的方式务实地配置日志记录,那么一个选项就是使用java.security.debug选项access。在安全管理器下运行应用程序将获得所有或所有所需权限,但随后启用访问跟踪。
https://stackoverflow.com/questions/50053298
复制相似问题