我一直試圖讓這個簡單的用例工作,但不能:定義一個文件Appender信息的默認閾值,但用DEBUG級別定義一個類別。這是一個jboss 4.2.1.GA log4j.xml文件,我正在使用它只記錄java.sql調用。log4j:不同的類別優先級比appender閾值
<appender name="SQL_FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/sql.log"/>
<param name="Append" value="false"/>
<param name="Threshold" value="INFO"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %C %m%n"/>
</layout>
</appender>
<category name="java.sql">
<priority value="DEBUG"/>
<appender-ref ref="SQL_FILE"/>
</category>
<root>
<appender-ref ref="SQL_FILE"/>
</root>
而不是記錄只是java.sql它記錄INFO和以上,並不包括任何java.sql信息。如果沒有簡單的解決方案,那麼我需要將appender Threshold設置爲DEBUG,並關閉包含的多個類別的所有日誌記錄,這似乎是浪費時間。
我試過以下,但無法使它工作:Configuring multiple log files in log4j while using categories。
感謝您的答覆。請參閱下面的解決方案這很諷刺,但你說得對,java.sql實際上並沒有做任何日誌記錄。但我猜想通過ibatis我能夠得到輸出。下面是一個示例: 2010-02-22 16:48:45,469 DEBUG [java.sql.Connection] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl {conn-100000}連接 2010-02-22 16 :48:45,479 DEBUG [java.sql.Connection] com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl {conn-100000}準備語句:SELECT ....... –
詹姆斯沒有什麼諷刺的。 java.sql是一個核心JAVA包。它不應該使用log4j或commons-logging。 java.util.logging.Logger是一個JDK類,可用於JDK 1.4。 –