当我尝试使用log4j2版本2.10时,发生了一些奇怪的事情。
包含log4j2文档中的每个示例似乎都是错误的。
请考虑以下示例:https://logging.apache.org/log4j/2.x/manual/configuration.html
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
使用上面的例子我得到了以下输出:
log4j:WARN Continuable parsing error 2 and column 30
log4j:WARN Document root element "Configuration", must match DOCTYPE root "null".
log4j:WARN Continuable parsing error 2 and column 30
log4j:WARN Document is invalid: no grammar found.
log4j:ERROR DOM element is - not a <log4j:configuration> element.
log4j:WARN No appenders could be found for logger (utils.Xablau).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
没有记录任何内容。
要解决这个问题,我必须使用其他模式:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} [%-5p] [%t] %m%n" />
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.FileAppender">
<param name="file"
value="C:/tmp/logs/functional-test.log" />
<param name="immediateFlush" value="true" />
<param name="threshold" value="debug" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<category name="se.jayway.ddsteps">
<priority value="info"></priority>
</category>
<root>
<priority value="INFO"></priority>
<appender-ref ref="console" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
这是它工作和记录内容的唯一方式。
顺便说一句,我正在使用以下maven依赖项导入:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.10.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
答案 0 :(得分:1)
您使用的新工作配置为log4j
,而不是log4j2
。
我认为实际log4j2
配置(第一个)由于依赖性问题而无效。
以下依赖关系必须位于pom.xml
log4j2
才能使其正常工作 -
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>log4j-core</version>
</dependency>