我的基于 servlet 的 web 应用程序有时无法在重新部署时关闭 Log4j 日志文件,泄漏到文件描述符泄漏,有时会导致包含 servlet 的文件因“打开的文件过多”而死亡。
我有一个 ContextListener,我应该在它的 contextDestroyed() 中放入什么来告诉 log4j 关闭并释放所有资源?
快速浏览 javadocs 揭示了带有 shutdown() 方法的 Hierachery 类。我不知道如何实际获取当前的 Hierachery,并且 javadoc 指出此类内部没有用户可维护的组件:)