java - Log4j 删除后不重新创建日志文件

标签 java tomcat logging log4j

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

最佳答案

Is there any way to delete the log file (not from the app), create a new one in the same path with the same name, and that it can be written by the application?

没有。您需要让应用程序本身重新启动日志记录。

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

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

关于java - Log4j 删除后不重新创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700187/

相关文章:

linux - 本地系统中的远程进程日志

php error_log() 归档日志文件

java - Java GC可以收集实例吗,而它是由方法使用的

Java静态变量值不能传递

java - 错误 : reference to put is ambiguous, JSONObject 中的方法 put(String,Collection) 和 JSONObject 中的方法 put(String,Map) 匹配

java - Maven 和 Tomcat 中的 Jar 冲突?

eclipse - rest 服务在 Eclipse 中部署时有效,但在 Tomcat 中无效

java - 如何测试这条 Camel 路线?依赖注入(inject)和环境变量

tomcat - java.lang.SecurityException : org. xml.sax.SAXNotRecognizedException : Feature: http://apache. org/xml/features/allow-java-encodings

android - 如何在构建 Android 应用程序的发布版本之前删除所有调试日志记录调用?