java - Log4j 不在控制台上打印调试日志

标签 java log4j configuration-files

这是我的 log4j.xml

<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->

<!--  DAILY ROLLING -->
<appender name="file" class="org.apache.log4j.RollingFileAppender">
    <param name="MaxFileSize" value="10240KB" />
    <!-- Keep one backup file -->
    <param name="MaxBackupIndex" value="10" />
    <param name="ImmediateFlush" value="true" />
    <param name="Append" value="true" />
    <param name="File" value="/usr/local/xmld/log/xmld-core.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="XMLD2[%t] [loadId(%X{loadID}) - %X{customer} - %X{configuration} - %X{filename}]: %-5p - %d{yyyy-MM-dd HH:mm:ss,SSS} (%F:%M:%L) %m%n" />
    </layout>
</appender>

<!--  SYSLOG -->
<appender name="syslog" class="org.apache.log4j.net.SyslogAppender">
    <param name="syslogHost" value="${hostName}" />
    <param name="facility" value="LOCAL6" />
    <param name="facilityPrinting" value="false" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="XMLD2[%t] [loadId(%X{loadID}) - %X{customer} - %X{configuration} - %X{filename}]: %-5p - %d{yyyy-MM-dd HH:mm:ss,SSS} (%F:%M:%L) %m%n" />
    </layout>
</appender>

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="XMLD2[%t] ${hostName} [loadId(%X{loadID}) - %X{customer} - %X{configuration} - %X{filename}]: %-5p - %d{yyyy-MM-dd HH:mm:ss,SSS} (%F:%M:%L) %m%n" />
        <!-- %d (%c{1})[%5p] %m%n -->
    </layout>
</appender>

<!-- ====== Categories ===== -->
<!-- core -->
<logger name="com.my.xmldelivery2.core">
    <level value="DEBUG" />
    <appender-ref ref="syslog" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</logger>

<logger name="com.my.commons.utils">
    <level value="DEBUG" />
    <appender-ref ref="syslog" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</logger>

<!-- hibernate -->
<logger name="org.hibernate">
    <level value="INFO" />
    <appender-ref ref="syslog" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</logger>

<!-- Apache VFS2 -->
<logger name="org.apache.commons.vfs2">
    <level value="INFO" />
    <appender-ref ref="syslog" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</logger>

com.my.commons.utils是一个依赖项,而com.my.xmldelivery2.core是我的软件。这是maven install后生成的log4j.xml。

但是在控制台日志中我看不到有关 utils 包的任何信息。包名是正确的。我真的不明白我做错了什么。不得不说,前两个包也用到了后两个包。

最佳答案

试试这个:

1)添加根记录器配置,所有日志事件都填充到根:

<root>
   <level value="DEBUG" />
    <appender-ref ref="syslog" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</root>

2) 删除所有 DEBUG 记录器配置

3) 仅配置 INFO 级别。 DEBUG不会向上传递到root

<!-- hibernate -->
<logger name="org.hibernate">
    <level value="INFO" />
</logger>

<!-- Apache VFS2 -->
<logger name="org.apache.commons.vfs2">
    <level value="INFO" />
</logger>

关于java - Log4j 不在控制台上打印调试日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972310/

相关文章:

java - 对运行不同进程的同一应用程序使用不同的 log4j 配置文件

没有配置文件的 WCF 配置

java - Spring 启动: No matching bean found exception

java - 如何在运行时验证客户端 WSDL 是否与服务器 WSDL 匹配?

java - 对使用数据库的 2 个 xml 文件使用相同的类

java - 如何在我的 web 项目中配置 log4J

java - 配置 proguard-maven-plugin 过滤库 jar 的 META-INF

tomcat - 添加外部配置文件时配置设置是否被替换?

ios - 是否可以创建配置文件 "on"iphone?

java - 使用 Java 和 Python 的 uuencoded 文件之间的区别