我通过编程方式配置log4j附加程序,以在运行时创建不同的文件。我能够创建文件,并且希望它们在每次运行时都重新开始。
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();
尽管即时通讯
fileAppender.setAppend(false);
我无法重新启动日志文件。
最佳答案
我也建议过同样的问题。
如果调用此构造函数,则RollingFileAppender和FileAppender都不起作用,该构造函数使用追加默认值(true)打开输出流。我认为稍后setAppend(false)如果不重新打开流就无法工作。
最后,我用构造函数来解决:
fileAppender = new RollingFileAppender(layout, logfile, false);
祝好运!