当前位置: 首页 > 知识库问答 >
问题:

log4j线程上的Tomcat内存泄漏问题

曾明诚
2023-03-14

我在log4j v1中面临内存泄漏的问题。如何解决这个内存泄漏问题。此方法是定期检查log4j.properties文件在我的类中的更新。

PropertyConfigutaror.ConfigureandWatch(time_ms);

但是在关机期间,tomcat内存泄漏问题就来了。日志如下:

提前致谢

共有1个答案

黄浩涆
2023-03-14

是否有一种方法可以让log4j在配置文件发生更改时自动重新加载它?

是的。DOMConfigurator和PropertyConfigurator都支持通过configureAndWatch方法自动重新加载。有关更多细节,请参见API文档。

由于configureAndWatch启动一个单独的wathdog线程,并且在Log4J1.2中无法停止该线程,因此在回收应用程序的J2EE环境中使用configureAndWatch方法是不安全的。(1)

也可以编写自己的属性文件读取器,并以编程方式设置日志配置。有关更多信息,请参见在运行时更改Log4j属性。

 类似资料:
  • Tomcat 8.5中有以下警告,我不确定是否可以忽略 它发生在以下代码中的: 我是否应该在关闭

  • 问题内容: 由于Tomcat中的孤立线程,我遇到了内存泄漏。特别是,Guice和JDBC驱动程序似乎没有关闭线程。 我知道这与其他问题,但是就我而言,“不必担心”的答案是不够的,因为它给我带来了麻烦。我的CI服务器会定期更新此应用程序,重新加载6-10次后,由于Tomcat内存不足,CI服务器将挂起。 我需要能够清理这些孤立的线程,以便可以更可靠地运行CI服务器。任何帮助,将不胜感激! 问题答案:

  • 当我们试图取消部署应用程序时,一些Oracle类似乎正在泄漏。在使用旧的OJDBC14.jar驱动程序时,我没有看到这种情况,但我们不能使用这些驱动程序,因为我们正在迁移到Oracle11g,这需要更新的驱动程序。我猜这是Oracle驱动程序中的bug?我能做些什么来清理这些资源吗?我尝试关闭数据库连接池和其他东西,但没有成功... 我不使用Tomcat的连接池会更好吗?我们宁愿让服务器连接到数据

  • 我的Optaplanner似乎出现了内存泄漏。要复制,只需下载Quarkus示例: 然后通过增加终止时间(例如,将)和取消注释表示的行来更改以启用多线程。 然后,运行手册中的请求: 内存使用量开始稳步增加,同时生成了数百万个PhreakPropagationContext对象。我认为这不是预期的行为。我应该为此制造问题还是遗漏了什么?

  • 问题内容: 在多个帖子中都提到了这一点:不当使用会导致内存泄漏。我正在努力了解使用内存泄漏将如何发生。 我发现的唯一情况如下: Web服务器维护一个线程池(例如,用于servlet)。如果未删除其中的变量,则这些线程可能会导致内存泄漏,因为线程不会死亡。 这种情况下没有提到“ Perm Space”内存泄漏。那是内存泄漏的唯一(主要)用例吗? 问题答案: PermGen的exhaustions 与

  • 出现此错误,JSP页面变为空白(白色): Jan9, 2013 7:30:39PMorg.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE:Web应用程序[/MyWebApp]创建了一个ThreadLocal,其中键的类型为[net.sourceforge.jtds.jdbc.DateTime1美元](值[net