Log4J能够从磁盘恢复完整?

我们有几个Java应用服务器在这里运行,有几个应用程序。 他们都将Log4J记录到同一个文件系统中,我们只是为此创建了这个文件系统。 有时会发生文件系统空间不足,应用程序无法运行

log4j:ERROR Failed to flush writer,                                             
java.io.IOException

不幸的是,Log4J不能从这个错误中恢复,所以即使在文件系统中释放了空间之后,也没有更多的日志从该应用程序写入。 除了重新启动应用程序之外,是否有任何选择,以编程方式或设置方式让Log4J再次运行?


你看到什么是可接受的结果? 我会考虑编写一个新的Appender来包装任何appender访问磁盘,并且当它检测到IOExceptions时试图做一些明智的事情。 也许可以让它将底层的Appenders写入方法包装在try-catch块中,并向您或系统管理员发送一封电子邮件。


我没有测试这个,但是logback的网站说:

从I / O故障中恢复正常

Logback的FileAppender及其所有子类(包括RollingFileAppender)可以从I / O故障中正常恢复。 因此,如果文件服务器暂时失败,则不再需要重新启动应用程序,只需重新进行日志记录即可。 只要文件服务器恢复运行,相关的logback appender就会从前一个错误状态中透明地快速恢复。

我认为对于上述情况也是如此。


限制日志的大小,并尝试使用自定义appender将日志归档到具有大量磁盘空间的备份计算机。

链接地址: http://www.djcxy.com/p/43119.html

上一篇: Log4J able to recover from disk full?

下一篇: Can I create a "Covering, Spatial" index in SQL Server 2008?