1

我是 log4j 的新手,并试图在项目中使用它。由于某种原因,信息不会显示在控制台上。它仅在我将其更改为 logger.error() 时才有效。这仅发生在 userServiceImpl 类中,其他类(如控制器)很好。这是 log4j.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration debug="false"
    xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!-- This default ConsoleAppender is used to log all NON perf4j messages 
        to System.out -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" />
        </layout>
    </appender>

    <!-- The root logger sends all log statements EXCEPT those sent to the perf4j 
        logger to System.out. -->
    <root>
        <level value="ERROR" />
        <appender-ref ref="console" />
    </root>
    <logger name="com.click.heal.controller" additivity="false" >
      <level value="INFO" />
      <appender-ref ref="console"/>
   </logger>
    <logger name="com.click.heal.service" additivity="true" >
      <level value="INFO" />
        <appender-ref ref="console"/>
    </logger>
</log4j:configuration>
4

1 回答 1

1

您的根类别处于错误级别。任何不属于其他两个记录器之一的内容都将属于根目录,并且只会以错误级别记录。如果您将根级别更改为 INFO,我敢打赌它会记录下来,对吗?不是说这就是你想要的,但它会是你的 UserServiceImpl 类现在正在 root 下登录的线索。

编辑

尝试在服务包的记录器上将可加性设置为 false。可加性意味着消息传播到父级,并且由于父级是 root 并且 root 日志到同一个控制台附加程序,这似乎是导致问题的原因。

于 2013-06-21T02:59:24.927 回答