2 kamikyo kamikyo 于 2013.11.04 10:38 提问

log4cxx RollingFileAppender 不产生新日志文件的问题

我的情况是这样的。
用log4cxx的RollingFileAppender,当日志文件达到一定大小之后生成新的日志文件并删除旧的日志文件。
可是当log4cxx尝试删除旧的日志文件时,它如果发现该文件被占用(如正在被复制,移动),那么log4cxx将不会删除这个旧的日志文件,他也不会生成新的日志文件,而是把日志内容持续写入当前最新的那个日志文件中。如果旧文件被占用的时间较长,且该期间产生的日志内容又比较多时,那么就有可能产生一个体积足够庞大的日志文件。等到被占用的旧日志文件被释放时,log4cxx才会去删除它,再生成一个新的日志文件。

同样的情况,log4net的处理就聪明了很多。他会产生一个同名但扩展名为DeletePending的文件供别的程序(正在复制,移动)使用,旧文件会被删除,新文件会被创建。等到别的程序操作完成之后log4net会自动将DeletePending文件删除。

我想问的是,log4cxx是否可以通过某些配置来达到和log4net同样的效果。我刚接触log4cxx不久,很多地方不明白,还请前辈们多教导教导,在此谢过了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!