2017-01-17 165 views
1

我在Tomcat上部署的应用程序使用log4j写入日志文件。如果我删除该文件,那么该应用程序不会重新创建它。我也尝试手动重新创建它,但它始终是空的。有什么办法可以删除日志文件(不是从应用程序),在同一个路径中创建一个具有相同名称的新日志文件,并且它可以由应用程序编写?Log4j删除后不重新创建日志文件

+1

为什么你需要这个? – Jens

+0

@Jens因为它是另一个程序,如果它在2天内没有写入,就会删除日志文件。 – abaraza

+0

这使得感觉? – Jens

回答

0

有什么办法可以删除日志文件(不是从应用程序),在相同的路径中创建一个新名称,并且它可以由应用程序写入?

没有。您需要让应用程序本身重新开始记录。

问题是,log4j appender仍然有一个处理删除的文件,并将继续写入它...不知道它已被删除。

更好的方法是让应用程序本身负责“旋转”日志文件。查看classes实现log4j Appender接口的一些想法。

+0

虽然这样,但我仍然有希望有任何解决方法......无论如何,谢谢你。 – abaraza

+0

好吧,有可能。例如,您可以编写一个自定义附加选项,检查每次尝试写入之前日志文件是否存在。但它丑陋而且效率低下,应用程序需要改变以使其工作。 –