[英]Issue in FileHandler
我正在嘗試初始化 FileHandler 以寫入給定的文件名,並使用以下語法進行可選的附加:
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)
我該如何解決這個問題。
可能您的文件正在被另一個進程訪問。 請參閱這篇文章,它可以幫助您在 Java 中無法鎖定 .log 文件
您會發現在寫入 100 個日志文件后出現錯誤。 根本原因是 Java 中的錯誤。 參見,例如,
系統屬性控制 java.util.logging.FileHandler 的 MAX_LOCKS 限制
和
增加 java.util.logging.FileHandler MAX_LOCKS 限制
這些參考文獻還提出了一個解決方案:在執行日志記錄的代碼之前設置系統屬性“jdk.internal.FileHandlerLogging.maxLocks”。 例如,通過
// Set maxLocks to 200. The default is 100.
System.setProperty("jdk.internal.FileHandlerLogging.maxLocks", "200");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.