2014-03-12 100 views
0

以編程方式配置log4j appenders以在運行時創建不同的文件。我能夠創建文件,並希望它們在每次運行時都能重新開始。log4j appender.setAppend for rollingFileAppender不工作?

String logfile = ("/home/Dev/" + hostname + id); 
    Logger logger =Logger.getLogger(testImpl.class); 
    RollingFileAppender fileAppender=null; 
    logger.setLevel(Level.DEBUG); 
    PatternLayout layout = new PatternLayout("%d{ISO8601} [%t] %-5p %c %x - %m%n"); 
     try 
     { 
      fileAppender = new RollingFileAppender(layout, logfile); 
      logger.addAppender(fileAppender); 
      fileAppender.setAppend(false); 
      logger.setAdditivity(false); 
     } 
     catch (IOException e) 
     { 
      System.out.println("Failed to add appender !!"); 
     } 
     logger.error("Message Number :"+i); 
     LogManager.resetConfiguration(); 

eventhough IM設置

fileAppender.setAppend(false); 

林無法啓動日誌文件清新。

回答

1

我遇到了同樣的問題。 如果您調用此構造函數,它將使用附加默認值(true)打開輸出流,RollingFileAppender和FileAppender都不起作用。我認爲後來setAppend(false)不能工作,如果它不重新打開流。

最後我解決它與構造:

fileAppender = new RollingFileAppender(layout, logfile, false); 

祝你好運!

+0

感謝您的解決方案:) – shashantrika

相關問題