Log4j不会在删除时重新创建文件

Jim*_*Jim 5 java linux logging tomcat log4j

我在Tomcat中有一个使用log4j进行日志记录的Web应用程序.
如果在Web应用程序运行时删除日志文件,则不会重新创建文件?
如何配置log4j以在删除时重新创建文件而无需重新启动Tomcat?

Bog*_*san 3

如果您的 tomcat 位于 Linux 服务器上,并且您使用对日志文件夹没有执行权限的特定用户启动它,那么您的 log4j 将不会重新创建您的日志,因为它可能只有读/写权限。

如果是这种情况,请尝试:

chmod 755在包含文件夹上

编辑:

第二种可能是某些操作系统仅在文件不再使用时才完成“删除”操作。如果是这种情况,您的 tomcat 仍然可以“看到”那里的日志。

编辑2:

在这种情况下,创建一个 cron 作业,每隔几分钟检查一次文件是否存在。如果不是就重新创建它。我将在几分钟内提供解决方案。

所以你的 crontab 中的 bash 应该是这样的:

if [ ! -f /tomcat_dir/log4j.log ]
then
  `touch /tomcat_dir/log4j.log`;
fi
Run Code Online (Sandbox Code Playgroud)