簡體   English   中英

Log4j未在控制台上打印調試日志

[英]Log4j is not printing debug logs on console

這是我的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 logger配置,所有日志事件都填充到root:

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

2)刪除所有DEBUG記錄器配置

3)僅配置INFO級別。 調試不會傳遞到根

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

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

首先,如果com.my.commons.utils包位於依賴項中,您能否確定該依賴項中的類按類名的名稱使用記錄器? 如果com.my.commons.utils.MyClass使用名為MyFancyLogger的記錄器,則不會打印任何內容。

因此,假設utils包中的類遵循“記錄器名稱匹配類名稱”的做法:您的Log4J指令中的任何一條似乎都有效嗎? 您確定您的log4j.xml確實有效嗎?

在任何情況下,您都可以使用-Dlog4j.debug=true系統屬性來確切了解幕后情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM