【问题标题】:log4j2 issue . Unable to log any thing either in console or in a filelog4j2 问题。无法在控制台或文件中记录任何内容
【发布时间】:2013-11-15 13:50:05
【问题描述】:

我刚刚从 log4j 1.x 更新到 log4j2。在第一个版本中,每件事都运行良好。现在更新到 log4j2 后它没有记录任何东西。我在下面粘贴我的代码。任何人请帮帮我

这是我的依赖项

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>2.0-beta9</version>
        <type> jar</type>

    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0-beta9</version>
        <type> jar</type>

    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0-beta9</version>
        <type> jar</type>

    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-jcl</artifactId>
        <version>2.0-beta9</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0-beta9</version>
    </dependency>                                                
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-taglib</artifactId>
        <version>2.0-beta9</version>
    </dependency>

这是我的 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="warn" name="MyApp" packages="">
    <Appenders>
        <console name="Console" target="SYSTEM_OUT" includeLocation="true">
        <PatternLayout pattern="%d %-5p [%t] [%c:%L] %m%n"/>

        </console>
        <RollingRandomAccessFile name="Rolling" fileName="${sys:DOC_ROOT}/logs/UILogs-${sys:SERVER_NAME}-${sys:SERVER_ID}-${sys:SERVER_TYPE}.log"
                                 filePattern="${sys:DOC_ROOT}/logs/UILogs-${sys:SERVER_NAME}-${sys:SERVER_ID}-${sys:SERVER_TYPE}-%d{yyyy-MM-dd}.log.gz">
            <PatternLayout pattern="%d %-5p [%t] [%c:%L] %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="250 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="180" compressionLevel="9"/>
        </RollingRandomAccessFile>



        <Async name="dev">
            <AppenderRef ref="DevSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="debug"/>
            <AppenderRef ref="Rolling" level="debug"/>
        </Async>
        <Async name="test">
            <AppenderRef ref="TestSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="debug"/>
            <AppenderRef ref="Rolling" level="debug"/>
        </Async>  
        <Async name="prod">
            <AppenderRef ref="ProdSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="info"/>
            <AppenderRef ref="Rolling" level="info"/>
        </Async>
        <Async name="local">
            <AppenderRef ref="DevSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="debug"/>
            <AppenderRef ref="Rolling" level="debug"/>
        </Async>
        <Async name="">
            <AppenderRef ref="ProdSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="info"/>
            <AppenderRef ref="Rolling" level="info"/>
        </Async>
        <Async name="">
            <AppenderRef ref="TestSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="debug"/>
            <AppenderRef ref="Rolling" level="debug"/>
        </Async> 
        <Async name="">
            <AppenderRef ref="ProdSMTP" level="fatal"/>
            <AppenderRef ref="Console" level="info"/>
            <AppenderRef ref="Rolling" level="info"/>
        </Async>
        <Async name="lib">
            <AppenderRef ref="Console" level="info"/>
            <AppenderRef ref="Rolling" level="info"/>
        </Async> 

    </Appenders>  

    <Loggers>
        <Root level="debug" additivity="false">
            <AppenderRef ref="${sys:SERVER_TYPE}"/>
        </Root>        
        <root level="error">
      <appender-ref ref="Console"/>
    </root>
        <Logger name="org.apache.ibatis" additivity="false">
            <AppenderRef ref="lib"/>
        </Logger>
        <Logger name="java.sql" additivity="false">
            <AppenderRef ref="lib"/>
        </Logger>
         <Logger name="RollingRandomAccessFile" additivity="true">
            <AppenderRef ref="Rolling"/>
        </Logger>
        <logger name="com.foo.Bar" level="trace">
  <appender-ref ref="Console"/>
</logger>

</Configuration>

【问题讨论】:

    标签: java jakarta-ee logging log4j log4j2


    【解决方案1】:

    在配置中有几个问题需要修复:

    依赖关系:

    • &lt;type&gt;jar 之间有一个空格 ' ' 字符。 (不确定这是否会导致任何问题)。

    Log4j2.xml 配置:

    • 有三个Async 没有名称的附加程序。他们必须有名字。
    • 有两个根附加程序。配置中只能有一个根附加程序,因此您需要删除其中一个。
    • 多个记录器没有定义级别。如果您的目的是让附加程序完成日志级别过滤,我建议您确保将所有事件传递给附加程序:我建议您在这些记录器上指定 TRACE 级别。
    • &lt;Loggers&gt; 元素没有结束 &lt;/Loggers&gt; 标记。这可能是最大的问题。

    【讨论】:

    • 另外,设置
    【解决方案2】:

    您是否收到任何相关错误?例如,如果是错误:“ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogge”试试这个link来解决你的日志记录问题。

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多