来自java.util.logging的FileHandler类为它要写入的文件实现了某种锁定机制。然而,我发现在应用程序结束后,文件系统中到处都是.lck文件。有没有办法根据.lck文件或整个锁定机制定制FileHandler类的行为?
编辑:似乎当我关闭FileHandler对象时,.lck文件就消失了。这是想要的行为吗?不知何故,我希望FileHandler的close方法应该被自动调用...
发布于 2013-03-02 14:59:55
您可以使用函数System.addShutdownHookFinalizer(Runnable r)激活线程,即job关闭所有未关闭的线程。因此,您将关闭FileHandler,并且.lck文件将消失
发布于 2017-06-24 01:08:31
似乎当我关闭FileHandler对象时,.lck文件就消失了。这是想要的行为吗?不知何故,我希望FileHandler的close方法应该自动调用
LogManager有一个关闭挂钩,如果FileHandler在关闭时仍连接在记录器上,该挂钩将关闭它。问题是记录器可能会受到垃圾回收的影响。如果发生这种情况,则FileHandler永远不会关闭。以下错误中包含了这一点:
保持对记录器的强引用,这样它们就不会被垃圾收集。
https://stackoverflow.com/questions/11718140
复制相似问题