首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.util.logging.FileHandler和多线程

java.util.logging.FileHandler和多线程
EN

Stack Overflow用户
提问于 2012-07-30 16:52:28
回答 2查看 576关注 0票数 1

来自java.util.logging的FileHandler类为它要写入的文件实现了某种锁定机制。然而,我发现在应用程序结束后,文件系统中到处都是.lck文件。有没有办法根据.lck文件或整个锁定机制定制FileHandler类的行为?

编辑:似乎当我关闭FileHandler对象时,.lck文件就消失了。这是想要的行为吗?不知何故,我希望FileHandler的close方法应该被自动调用...

EN

回答 2

Stack Overflow用户

发布于 2013-03-02 14:59:55

您可以使用函数System.addShutdownHookFinalizer(Runnable r)激活线程,即job关闭所有未关闭的线程。因此,您将关闭FileHandler,并且.lck文件将消失

票数 0
EN

Stack Overflow用户

发布于 2017-06-24 01:08:31

似乎当我关闭FileHandler对象时,.lck文件就消失了。这是想要的行为吗?不知何故,我希望FileHandler的close方法应该自动调用

LogManager有一个关闭挂钩,如果FileHandler在关闭时仍连接在记录器上,该挂钩将关闭它。问题是记录器可能会受到垃圾回收的影响。如果发生这种情况,则FileHandler永远不会关闭。以下错误中包含了这一点:

  1. JDK-8060132 Handlers configured on abstract nodes in logging.properties are not always properly closed.
  2. JDK-6274920: JDK logger holds strong reference to java.util.logging.Logger instances.

保持对记录器的强引用,这样它们就不会被垃圾收集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11718140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档