1 回答

TA貢獻1841條經(jīng)驗 獲得超3個贊
雖然我實現(xiàn)了部分目標,但如果原始日志文件被鎖定,則會生成額外的文件,如下所示:testLogs.log.0,testLogs.log.1,testLogs.log.0.1等。我讀了很多建議和解決方案,但我無法阻止這個問題。有什么建議 ?
由于您的計數(shù)設置為 10,因此您需要指定%g
記錄生成的模式。
com.mucam.xxxx.PersonalFileHandler.pattern?=?C:/Users/pmendez/Documents/Log/testLogs%g.log
該模式是絕對路徑,因此如果您創(chuàng)建多個文件處理程序,它將通過在末尾附加唯一編號來解決沖突。這是由%u
模式指定的。因此,如果您想移動整數(shù)在文件名中的位置,您可以%u
在模式中指定標記。
這也意味著您正在創(chuàng)建自定義文件處理程序的多個實例并且它們沒有被關閉。如果你想控制文件的數(shù)量,你要么需要控制你創(chuàng)建的 PersonalFileHandler 的數(shù)量,要么共享對單例 PersonalFileHandler 的引用。否則,您需要確保,如果顯式創(chuàng)建 PersonalFileHandler,則在創(chuàng)建第二個新的 PersonalFileHandler 之前顯式關閉該 PersonalFileHandler。
記錄器會受到垃圾收集的影響。該行:
Logger.getLogger(clazz).addHandler(new?PersonalFileHandler());
除非其他地方的代碼已經(jīng)將該記錄器固定在內(nèi)存中,否則會受到垃圾收集的影響。這可能會導致日志文件被創(chuàng)建、鎖定和清空。
添加回答
舉報