2012-08-07 86 views
1

我正在使用Log4j來記錄我的應用程序的輸出。 的log4j.properties文件的內容如下:Java Log4j覆蓋FileAppenders的輸出

log4j.logger.DEFAULT_LOGGER=INFO,main_log, stdout 
    log4j.additivity.DEFAULT_LOGGER = false 

    # Direct log messages to a log file 
    log4j.appender.main_log=org.apache.log4j.FileAppender 
    log4j.appender.main_log.File=mainLog.log 
    log4j.appender.main_log.layout=org.apache.log4j.PatternLayout 
    log4j.appender.main_log.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %c{1}:%L - %m%n 

    # Direct log messages to stdout 
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
    log4j.appender.stdout.Target=System.out 
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %c{1}:%L - %m%n 

目前發生以下情況。當我開始我的,我叫

static Logger log = Logger.getLogger("DEFAULT_LOGGER"); 
log.fatal("Process Logger"); 

它打印輸出到標準輸出和file.log,這是很好的主要方法。但是當我第二次啓動我的應用程序時,它會將輸出添加到現有文件中。但我想覆蓋日誌文件。這可能嗎? (我不想用Java刪除,當然我也不想手動刪除它)Log4J中有一個選項可以告訴記錄器是覆蓋還是添加輸出?

回答

1

您可以使用FileAppender,log4j.appender.fileAppender.Append =虛假的屬性添加到它