java.util.logging 中的 FileHandler 类为它正在写入的文件实现了某种锁定机制。但是我发现应用程序完成后文件系统中有一个 .lck 文件。有没有办法针对 .lck 文件或整个锁定机制自定义 FileHandler 类的行为?
编辑:似乎当我关闭 FileHandler 对象时 .lck 文件消失了。这是想要的行为吗?我以某种方式期望应该自动调用 FileHandler 的 close 方法......
java.util.logging 中的 FileHandler 类为它正在写入的文件实现了某种锁定机制。但是我发现应用程序完成后文件系统中有一个 .lck 文件。有没有办法针对 .lck 文件或整个锁定机制自定义 FileHandler 类的行为?
编辑:似乎当我关闭 FileHandler 对象时 .lck 文件消失了。这是想要的行为吗?我以某种方式期望应该自动调用 FileHandler 的 close 方法......
您可以使用激活线程的功能 System.addShutdownHookFinalizer(Runnable r) 来关闭所有未关闭的内容。所以你将关闭 FileHandler 并且 .lck 文件将消失
似乎当我关闭 FileHandler 对象时 .lck 文件消失了。这是想要的行为吗?我以某种方式期望应该自动调用 FileHandler 的 close 方法
LogManager 有一个关闭钩子,如果 FileHandler 在关闭时它仍然连接到记录器,它将关闭它。问题是记录器可能会受到垃圾收集。如果发生这种情况,则 FileHandler 永远不会关闭。这包含在以下错误中:
强烈引用您的记录器,以免它们被垃圾收集。