簡體   English   中英

FileHandler 中的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM