我们有一个模块化应用程序,其中模块有自己的 log4j 日志(即通信日志和错误日志)。这些 appender 和类别都在核心 log4j XML 中配置,但并非总是安装所有模块。
DailyRollingFileAppender 无论使用如何都会创建其文件,尽管不存在,但会公开完整的模块集,并且由于其中一些是特定于客户的,我们希望隐藏未使用的日志。
有没有办法让 DailyRollingFileAppender 在第一次使用时创建它的文件而不是在启动时自动创建?
最佳答案
文件附加程序无法懒惰地创建日志文件 - 如果文件不存在,setFile
方法会自动创建文件:ostream = new FileOutputStream(fileName, append);
您必须扩展 appender 并自己覆盖文件初始化代码才能获得您所追求的行为。
关于log4j - 如何让 log4j 仅按需创建日志文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2719845/