gpt4 book ai didi

java - log4j2版本 '2.10'配置模式

转载 作者:行者123 更新时间:2023-12-02 11:44:28 24 4
gpt4 key购买 nike

当我尝试使用 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>

最佳答案

您使用的新工作配置是 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>

关于java - log4j2版本 '2.10'配置模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com