我正在尝试初始化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)我该如何解决这个问题。
发布于 2013-10-25 00:51:48
您的文件可能正在被另一个进程访问。查看这篇可以帮助你couldn't get lock for .log file in Java的文章
发布于 2020-04-09 18:25:31
在写入100个日志文件后,您会发现出现该错误。根本原因是Java中的一个bug。例如,请参见
System Property Controls the java.util.logging.FileHandler's MAX_LOCKS Limit
和
Increase java.util.logging.FileHandler MAX_LOCKS limit
这些参考还建议了一种解决方案:在执行日志记录的代码之前设置系统属性"jdk.internal.FileHandlerLogging.maxLocks“。例如,通过以下方式
// Set maxLocks to 200. The default is 100.
System.setProperty("jdk.internal.FileHandlerLogging.maxLocks", "200");https://stackoverflow.com/questions/19571899
复制相似问题