2017-08-10 55 views
-1

記錄在運行過程中出現幾個依賴關係(JAR文件)的多級Java應用程序,我得到了輕微的記錄器沒有登錄調試級別的問題,即使RootLogger級別設置爲「全部」。小記錄器不使用預定義的RootLogger日誌級別(log4j的)

我想下面兆瓦,其工作方式intendet到illustriate問題。請注意,原始應用程序(更全面)不會登錄調試級別,即使它應該從它的根記錄器繼承日誌級別(ALL)。次要記錄器不在根目錄下的原因是什麼?

的log4j.xml:

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" 
debug = "true" 
threshold = "all"> 

    <appender name="consoleAppender" 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> 

    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="true"/> 
     <param name="file" value="out/Marktdaten_Uploader_Tool.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> 
     </layout> 
    </appender> 

    <root> 
     <level value="all"/> 
     <appender-ref ref="consoleAppender"/> 
     <appender-ref ref="fileAppender" /> 
    </root> 
</log4j:configuration> 

的Class1(含有與根記錄實例主要方法):

package log4j_Test; 

import org.apache.log4j.*; 

public class LoggerStart { 

    private static Logger logger = Logger.getRootLogger(); 

    public static void main(String[] args) { 

    logger.debug("message"); 

    new Class2(); 

    } 
} 

等級2(含有少量記錄器和命令登錄調試級別):

package log4j_Test; 
import org.apache.log4j.Logger; 

public class Class2 
{ 
    private static Logger logger = Logger.getLogger(Class2.class); 

    Class2() 
    { 
    logger.debug("My debug message from Class2"); 
    } 
} 
+0

'Class1'和'Class2'是完全一樣的.... –

+0

感謝,糾正 – tmenke

+0

難道真的沒有人給我一些建議嗎?我已經在這個問題上投入了相當多的時間 - 沒有成功。 – tmenke

回答

0

我由於固定在去除所有的log4j.xml並直接添加記錄器的配置問題該應用的主要方法。