我的Java应用程序使用Log4j2作为它的日志实现,它依赖于使用Log4j的第三方库。
我正在尝试在我的应用程序中(使用下面的代码)为这些第三方记录器设置根日志记录器和日志级别,但是这些第三方库的记录器仍然没有登录到myAppender:
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
LoggerConfig loggerConfig = ctx.getConfiguration().getLoggerConfig(
LogManager.ROOT_LOGGER_NAME);
loggerConfig.addAppender(myAppender, Level.ERROR, null);
ctx.updateLoggers();我想到的一个解决方案是使用Log4jToSLF4JAdaptor将log4j的日志记录路由到SLF4J,然后使用Log4JSLF4JImpl将SLF4J的日志路由到我的Log4J2实现,但正如这里所述(https://logging.apache.org/log4j/2.0/log4j-slf4j-impl/index.html),这将导致无休止的路由。
您能建议我如何将这些第三方库的日志记录程序路由到myAppender吗?
发布于 2015-09-29 10:13:46
我的答案是:Configuring log4j2 and log4j using a single log4j2 xml file
基本上,我们需要使用log4j-1.2-api-2.0.jar将应用程序对log4-1.2API的所有调用路由到log4j2实现。
发布于 2015-10-02 17:09:52
对于使用Log4j 1.xAPI的第三方库:除了log4j-api和log4j核心jar文件之外,还需要将log4j-1.2-api jar文件添加到类路径中。
对于使用SLF4J API的第三方库:向类路径添加log4j-api、log4j-core和log4j- slf4j -impl jar文件(您还需要slf4j API)。
对于使用JUL (java.util.logging)的第三方库:将log4j-api、log4j-core和log4j-jul jar文件添加到类路径中,并将系统属性java.util.logging.manager设置为org.apache.logging.log4j.jul.LogManager。
https://stackoverflow.com/questions/32838170
复制相似问题