我正在尝试在我的应用程序中使用Log4J,但我的问题是我想运行此应用程序的机器没有给我本地驱动器的写权限。但是Log4J没有抛出任何错误,只是简单地跳过了日志记录。
所以我想要做的是编写一些代码,如果Log4J无法写入本地文件系统,它将在我的应用程序中返回一些反馈/消息。有没有办法判断Log4J是否可以从Log4J本身写入本地文件系统?或者有什么方法可以确定Log4J在每个操作中写入日志文件的字数是多少?然后我可以确定记录是否实际发生,然后采取适当的措施。
答案 0 :(得分:2)
您是否阅读了FAQ
来自网站的引用
没有。 log4j不可靠。这是一种尽力而为的故障停止日志记录 系统
通过失败停止,我们的意思是log4j不会抛出意外的异常 在运行时可能导致您的应用程序崩溃。如果是的话 原因,log4j抛出未捕获的异常,请发送电子邮件至 log4j-user@logging.apache.org邮件列表。未捕获的例外情况 被视为需要立即关注的严重错误。
即使日志记录失败,我也更喜欢我的应用程序继续。
您所描述的可能是“应用程序监控”的功能。有很多工具可以查看特定文件系统是否已满或者目录/文件暂时没有更改等等。
话虽如此,您可以在应用程序的最开始进行基本检查 - 比如在用于记录的目录中创建文件的权限。