繁体   English   中英

java.util.logging FileHandler.count无法正常工作

[英]java.util.logging FileHandler.count not working

我正在使用java.util.logging进行项目,并且遇到配置问题。 我有一个我知道正在读取的logging.properties文件,因为例如对level和filehandler模​​式的更改生效。

问题是,即使我试图强制只存在一个日志文件,java.util.logging仍坚持创建其他日志文件。 我已经阅读了文档 ,这里是FileHandler的示例配置:

java.util.logging.FileHandler.pattern = server.log
java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.append = false
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

结果是文件被创建为server.log.1,server.log.2等。理想情况下我不希望追加为真(似乎没有什么区别......),我只想要一个新的日志每次启动程序时都要创建的文件,可能会覆盖现有文件。 在任何时候,我的目录中都应该只有count个日志文件。

改变追加和计数似乎没有任何区别。 在模式中使用%u和%g等似乎也没有太大的区别。 我仍然在不断获取使目录混乱的server.log.n文件。

每个创建的文件还有一个附带的.lck文件。 他们为什么被创造出来并且可能成为罪魁祸首?

编辑:

不知道为什么我之前没有尝试过,但手动删除.lck文件会导致所需的工作。 所以现在的问题是:为什么创建.lck文件(不正确的关闭?)以及如何处理?

仅当FileHandler检测到server.log文件被锁定时才会发生这种情况。 您可以同时运行两个JVM,同时打开两个指向同一文件名的FileHandler实例,或者另一个进程在打开FileHandler之前锁定server.log文件。

相关: Java 8中的java.util.logging.FileHandler是否已损坏? JavaLogger随机写入第二个文件FileLock

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM