我正在尝试初始化FileHandler以写入给定的文件名,并使用foll语法可选附加:
FileHandler fh = null;
fh = new FileHandler("C:\\Users\\Desktop\\New_folder\\logs\\slate\\TodayLoad-2013-10-24.log",true);
但我得到的例外是:
java.io.IOException: Couldn't get lock for C:\Users\Desktop\New_folder\logs\slate\TodayLoad-2013-10-24.log
at java.util.logging.FileHandler.openFiles(Unknown Source)
at java.util.logging.FileHandler.<init>(Unknown Source)
at TodayLoad.Load.<init>(SlateSheetLoad.java:173)
at TodayLoad.Load.SlateSheetLoad.main(SlateSheetLoad.java:423)
如何解决此问题。
答案 0 :(得分:0)
可能您的文件被其他进程访问了。 看到这篇可以帮到你的帖子 couldn't get lock for .log file in Java
答案 1 :(得分:0)
在写入100个日志文件后,您会发现错误。根本原因是Java中的错误。例如,参见
System Property Controls the java.util.logging.FileHandler's MAX_LOCKS Limit
和
Increase java.util.logging.FileHandler MAX_LOCKS limit
这些参考还提出了一种解决方案:在执行记录的代码之前,先设置系统属性“ jdk.internal.FileHandlerLogging.maxLocks”。例如,通过
Cypress.config().environment.username