Log4j RollingFileAppender的正常行爲是在第一個日誌消息發生在不同日期時滾動,但即使沒有任何事件發生,但某些日誌文件對於每個日期都會變得溫暖和模糊。有沒有辦法強制它在午夜後滾動而不寫虛擬消息到日誌?乾淨地強制Log4j RollingFileAppender在午夜後不久滾動?
3
A
回答
4
我已經仔細查看了這段代碼 - 簡單的答案是'不'。翻轉是作爲Appender上的doAppend()流的一部分觸發的 - 觸發它的唯一方法是記錄一些內容。
你可以用cron來僞造這個:只需要一個cron腳本在明天11:58就可以觸摸這個文件。這會讓你找到你正在尋找的空白日誌文件行爲。
下面是實現翻轉功能代碼:
void rollOver() throws IOException {
/* Compute filename, but only if datePattern is specified */
if (datePattern == null) {
errorHandler.error("Missing DatePattern option in rollOver().");
return;
}
String datedFilename = fileName+sdf.format(now);
// It is too early to roll over because we are still within the
// bounds of the current interval. Rollover will occur once the
// next interval is reached.
if (scheduledFilename.equals(datedFilename)) {
return;
}
// close current file, and rename it to datedFilename
this.closeFile();
File target = new File(scheduledFilename);
if (target.exists()) {
target.delete();
}
File file = new File(fileName);
boolean result = file.renameTo(target);
if(result) {
LogLog.debug(fileName +" -> "+ scheduledFilename);
} else {
LogLog.error("Failed to rename ["+fileName+"] to ["+scheduledFilename+"].");
}
try {
// This will also close the file. This is OK since multiple
// close operations are safe.
this.setFile(fileName, false, this.bufferedIO, this.bufferSize);
}
catch(IOException e) {
errorHandler.error("setFile("+fileName+", false) call failed.");
}
scheduledFilename = datedFilename;
}
+2
如果您可以訪問appender,也可以調用RollingFileAppender.rollOver。 – 2010-11-09 14:14:36
+0
當日志不存在時調用rollover()將不會得到提交者所需的內容:正確日期和時間的空日誌文件。 – 2010-11-10 01:38:54
相關問題
- 1. 強制Log4Net RollingFileAppender滾動
- 2. Log4j RollingFileAppender在Linux上滾動,但在Windows上不滾動
- 3. 在午夜強制jwt令牌過期
- 4. 午夜後不啓動計時器
- 5. Log4J RollingFileAppender無法滾動文件
- 6. 可以DailyRollingFileAppender在午夜而不是在下一條消息滾動日誌?
- 7. 乾淨地將時間偏移從午夜轉換爲時間對象?
- 8. Log4J:如何在午夜後保留日誌文件
- 9. cron在午夜之前到午夜之後
- 10. 如何在午夜前或午夜後學習mytime?
- 11. 午夜之後更新BackContent
- 12. DateTime在午夜不顯示
- 13. 在午夜
- 14. SQL搜索午夜到午夜
- 15. RollingFileAppender,它滾動後,它不會追加
- 16. 午夜後刪除JS cookie
- 17. 午夜後PHP檢查
- 18. log4j appender.setAppend for rollingFileAppender不工作?
- 19. logback RollingFileAppender不滾動文件
- 20. 在log4j中使用RollingFileAppender滾動日誌文件
- 21. 結合強制WWW與乾淨的URL
- 22. Java定時器在午夜之後不會啓動
- 23. 熊貓 - 集團成24小時制,但不是午夜到午夜
- 24. 後在午夜時間的PostgreSQL
- 25. 團體約會午夜而不是午夜
- 26. Log4j RollingFileAppender每分鐘
- 27. RollingFileAppender - 滾動每年?
- 28. 在log4j中使用FileNamePattern,RollingFileAppender
- 29. 在log4j中配置RollingFileAppender
- 30. NSDate午夜後的第二天
我的猜測是,這是不是默認的行爲,因爲這需要某種形式的計時器線程,其中將要求您的應用程序在後臺運行不斷運行。這不是log4j強加的限制。 – Pace 2010-11-02 23:09:38