当前位置: 首页 > 知识库问答 >
问题:

log4j2版本“2.10”配置模式

阎涵容
2023-03-14

请考虑以下示例: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>

共有1个答案

滕渝
2023-03-14

您使用的新工作配置是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>
 类似资料:
  • Less提供了一种机制,允许根据参数的值来改变 mixin的行为。比如,以下代码就可以让 .mixin 根据不同的 @switch 值而表现各异: .mixin (dark, @color) {   color: darken(@color, 10%); } .mixin (light, @color) {   color: lighten(@color, 10%); } 此时,在调用 .mix

  • 目前移动统计iOS SDK默认统计的版本为AppStore中的版本号,即CFBundleShortVersionString的值。如果您有自己设置版本的需求,可以设置shortAppVersion属性的值。具体设置方法参见本文档基础配置部分。

  • 目前移动统计Android SDK默认统计的版本为AndroidManifest.xml中配置的版本号,即android:versionName="xxx"的值。 如果您希望自定义APP版本号,可以通过API StatService.setAppVersionName(Context context, String versionName)进行设置。一般建议无需此设置,除非特殊需要,比如对于SDK

  • 我是新来的Spring。让我困惑的一件事是,有时我看到带有版本化模式的XML配置文件,但有时带有非版本化模式。例如,有时候我看到一些像 有时是这样的: 请注意,在这两个示例中,和模式是不同的。 所以,我的问题是,你会使用哪种风格,为什么?特别是,版本化模式将来会变得不可用吗?当Spring更新模式时,非版本化模式会与当前应用程序保持兼容吗? 一个附带的问题是,我在哪里可以找到版本化的spring模

  • 问题内容: 我是Spring的新手。让我感到困惑的是,有时我看到带有版本化模式的XML配置文件,而有时却看到非版本化模式的XML配置文件。例如,有时我看到类似 有时像这样: 请注意,两个示例中的和模式是不同的。 所以,我的问题是,你将使用哪种样式以及为什么使用?特别是,将来版本更新的架构会不可用,并且当Spring更新架构时,非版本化的架构会与当前应用程序保持兼容吗? 另一个问题是,在哪里可以找到

  • 如何解决那个错误?? 我的生成分级文件是