Log4J-确定记录器是否无法写入文件系统



我正试图在我的应用程序中使用Log4J,但我的问题是,我想运行此应用程序的机器没有授予我对本地驱动器的写入权限。但是Log4J并没有抛出任何错误,它只是跳过了日志记录。

所以我想写一些代码,如果Log4J不能写入本地文件系统,它会在我的应用程序中返回一些反馈/消息。有没有一种方法可以判断Log4J是否可以从Log4J本身写入本地文件系统?或者,我有没有办法确定Log4J在每次操作中向其日志文件中写入了多少字?这样我就可以确定日志记录是否真的发生了,然后采取适当的行动。

你读过常见问题解答吗

从站点报价

没有。log4j不可靠。这是一种竭尽全力的故障停止日志记录系统

所谓故障停止,我们的意思是log4j不会抛出意外的异常在运行时可能会导致应用程序崩溃。如果有原因,log4j抛出一个未捕获的异常,请发送电子邮件至这个log4j-user@logging.apache.org邮件列表。未捕获的异常作为需要立即关注的严重错误进行处理。

即使日志记录失败,我也希望我的应用程序继续运行。

您所描述的可能是"应用程序监视"的功能。有很多工具可以查看特定的文件系统是否已满或目录/文件在一段时间内没有更改等。

话虽如此,您可以在应用程序之类的权限开始时进行基本检查,以便在用于日志记录的目录中创建文件。

最新更新