java.util.logging中的FileHandler类为它正在写入的文件实现某种锁定机制。但是我发现应用程序完成后文件系统中存在.lck文件。有没有办法根据.lck文件或整个锁定机制自定义FileHandler类的行为?
编辑:似乎当我关闭FileHandler对象时,.lck文件就会消失。这是想要的行为吗?我不知何故预计应该自动调用FileHandler的close方法......
答案 0 :(得分:0)
你可以使用函数System.addShutdownHookFinalizer(Runnable r)来激活作业的线程来关闭所有未关闭的东西。所以你将关闭FileHandler并且.lck文件将消失
答案 1 :(得分:0)
当我关闭FileHandler对象时,.lck文件似乎消失了。这是想要的行为吗?我不知何故预计应该自动调用FileHandler的close方法
LogManager有一个关闭钩子,如果在关闭时它仍然连接到记录器,它将关闭FileHandler。问题是记录器可能会被垃圾收集。如果发生这种情况,那么FileHandler永远不会关闭。这包含在以下错误中: