我以编程方式配置 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);
祝你好运!
关于java - 用于rollingFileAppender 的log4jappender.setAppend 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351491/