2012-02-29 140 views
0

我試圖創建一個使用log4j的使用這個配置2個日誌文件:記錄到2個日誌文件

log4j.rootLogger=debug,stdout,logfile 
#debug info warn error fatal 

# Set the enterprise logger category to FATAL and its only appender to CONSOLE. 
log4j.logger.org.apache=FATAL,logfile 

# ConsoleAppender properties 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.Threshold=debug 
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 
#%-5p [%t]: %m%n 

# LogFileAppender properties 
log4j.appender.logfile=com.xx.util.SizeRollingFileAppender 
log4j.appender.logfile.File=log.log 
log4j.appender.logfile.MaxFileSize=50240KB 
log4j.appender.logfile.BackupsDirectory=log 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 
log4j.appedner.logfile.Threshold=error 


# Log1FileAppender properties 
log4j.appender.log1=com.xx.util.SizeRollingFileAppender 
log4j.appender.log1.File=log1.log 
log4j.appender.log1.MaxFileSize=5120KB 
log4j.appender.log1.BackupsDirectory=log 
log4j.appender.log1.layout=org.apache.log4j.PatternLayout 
log4j.appender.log1.layout.ConversionPattern=%d %5p %c{1} :%L - %m%n 

(該xx是,我的項目工作) -

這裏,它是Java代碼:

public class TestLog4j { 

/** 
* @param args 
*/ 
private static org.apache.log4j.Logger log    = org.apache.log4j.Logger.getLogger(TestLog4j.class); 
private static org.apache.log4j.Logger log1= org.apache.log4j.Logger.getLogger("log1"); 

public static void main(String[] args) { 

    // TODO Auto-generated method stub 
    org.apache.log4j.PropertyConfigurator.configure("src/com/test/log4j.properties"); 
    log.error("Error Test Log"); 
    log1.info("Test Log1"); 
} 

} 

我的問題是,我想寫出兩個不同的文件,一個用於日誌,一個用於LOG1。我用這段代碼得到的只是一個文件,這兩個日誌都在同一個文件中創建。

我做錯了什麼?

+0

你能澄清你想達到什麼嗎?那麼,哪些日誌消息應該從哪裏進入哪個日誌文件? 要點是:您正在爲「log1」實例化Logger,但您沒有任何使用該名稱定義的記錄器!你只有一個rootLogger和一個名爲「org.apache」的記錄器,但沒有「log1」... – quaylar 2012-02-29 13:45:25

回答

0

簡短的回答:

地址:

log4j.logger.log1=<yourLogLevel>,log1 

您log4j.properties。

注:

每個啓用登錄請求到log1中(對數級> = yourLogLevel)會去兩個stdoutlogfile除非你關閉的appender可加!