我担心的是当连接断开并且不再需要记录器时会发生什么.如果Log4perl只是无限期地保留这些记录器,那听起来像是内存泄漏的秘诀.
在我确定它不再有用之后,摆脱记录器的最佳方法是什么?或者,相反,这甚至是一个问题 – Log4perl是否有某种内置的处理机制,已经防止了这种泄漏?
编辑:在一个问题的评论中提到,这里可能值得一提:Log :: Log4perl :: Logger有一个看起来很有希望的DESTROY方法.但是,它没有记录,并且引发了一堆“在字符串eq中使用未初始化的值”警告,这让我很谨慎;感觉就像一个黑客. (但如果这是最佳/唯一的方法,我想问题是“如何关闭来自特定包裹的特定警告?”)
解决方法 我看到的唯一方法是 *** 作Log :: Log4perl :: Logger的内部缓存.delete $Log::Log4perl::Logger::LOGGERS_BY_name->{$category};
这是“安全的”,因为它可以与当前版本的Log :: Log4perl一起使用,但不安全,因为它可能会破坏更新.这是之前由另一个SO用户建议的,但他们删除了它.
我建议您make a feature request能够删除单个缓存条目作为API的一部分.如果您想加快它,请提交补丁.这很简单.
总结以上是内存溢出为你收集整理的当我不再需要它时处置Log4perl记录器全部内容,希望文章能够帮你解决当我不再需要它时处置Log4perl记录器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)