如何配置log4j以使用JULAppender将日志事件发送到java.util.logging?
我熟悉java.util.logging(JUL)框架,我广泛使用它。最近,我开始使用一个通过log4j进行日志记录的库。当我启动应用程序时,控制台上会打印以下内容:如何配置log4j以使用JULAppender将日志事件发送到java.util.logging?,java,logging,log4j,java.util.logging,Java,Logging,Log4j,Java.util.logging,我熟悉java.util.logging(JUL)框架,我广泛使用它。最近,我开始使用一个通过log4j进行日志记录的库。当我启动应用程序时,控制台上会打印以下内容: log4j:WARN No appenders could be found for logger (com.example.thirdparty.Library). log4j:WARN Please initialize the log4j system properly. log4j似乎有一个解决方案:它将使用log4j记
log4j:WARN No appenders could be found for logger (com.example.thirdparty.Library).
log4j:WARN Please initialize the log4j system properly.
log4j似乎有一个解决方案:它将使用log4j记录的所有内容发送到我使用的日志框架
我找不到任何示例来说明如何配置log4j来使用这个appender。配置log4j的标准方法是在类路径的根目录中创建log4j.xml。以下是为JULAppender配置的文件的内容:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="jul" class="org.apache.log4j.JulAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c - %m%n "/>
</layout>
</appender>
<root>
<priority value="all" />
<appender-ref ref="jul" />
</root>
</log4j:configuration>
的实现(顺便说一句,可供下载)现在非常旧(从2008年开始),目标是JDK 1.4和log4j 1.2.15版
如果您使用log4j版本2.0(及更高版本),一个简单的解决方案是使用log4j记录所有消息,然后将log4j设置为使用java.util.logging
作为其底层实现
如果使用maven,只需在
段落中包含以下内容:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.7</version>
</dependency>
org.apache.logging.log4j
log4j-to-slf4j
2
org.slf4j
slf4j-jdk14
1.7.7
如果在项目中不使用maven,只需下载(从maven网站)并在类路径中包含以下3个jar即可获得相同的效果(除了log4j-api-2.0.jar
):
log4j-to-slf4j-2.0.jar
1slf4j-jdk14-1.7.7.jar
slf4j-api-1.7.7.jar
SLF4J appender
链接已失效。