log4j2删除文件夹

先说结论:通过log4j调用脚本实现。

通过配置DefaultRolloverStrategy可以按日期删除文件,但无法删除文件夹,这是log4j2的默认行为。

那如果想删除文件夹怎么办呢?
比如我们可能会把log按日期存储在各日期文件夹下,如果不删除文件夹,就会导致空文件夹越来越多。

通过扒拉源码,发现log4j2是支持删除文件夹的,但需要编写脚本:在xml中添加ScriptCondition节点,再添加Script子节点,这样删除什么完全由脚本决定。

具体写法可以参考官方文档:
http://logging.apache.org/log4j/2.x/manual/appenders.html#ScriptCondition
只需要在Script里返回要删除的文件夹就可以了。
这个文档里面也介绍了脚本内部可引用的log4j2的一些变量。

注意:Groovy需要引用groovy-all、groovy-jsr223的库。

有空整理一下这部分分析。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容