我想在每個小時內在特定文件夾中創建和存儲日誌文件。 如何處理? 任何示例都會有所幫助。如何在Java中每小時創建一個日誌文件
回答
您可以使用記錄器API(log4j)在每小時生成日誌文件。
無需額外的努力。使用DailyRollingFileAppender
其中集Datepattern
- '.'yyyy-MM-dd-HH
- 翻轉在每小時的頂部。
示例 -
log4j.appender.LOGFILE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGFILE.DatePattern = '.'yyyy-MM-dd-HH
...
注:在DatePattern選項字符中的任何地方:不要使用冒號 「」。冒號前面的文本是作爲URL的協議規範進行了介紹的,這可能不是您想要的。
+1 OP沒有迴應,但沒有任何其他方法。 :) – Arpit 2013-02-17 06:43:04
@Arpit我只能說--- :) – 2013-02-17 07:34:33
類似的東西:
public void run(){
while(true){
synchronize(this){
if(timeLap==1hr)
file.writeLine();
}
else
Thread.sleep(1hour);
}
}
,或者您可以使用API http://www.vogella.com/articles/Logging/article.html
您可以創建自定義FileAppender,財產以後像
public class TestFileAppender extends WriterAppender {
String pattern;
public void setFile(String file) {
this.pattern = file;
}
public synchronized void update() {
try {
closeWriter();
String folder = new SimpleDateFormat("yyyyMMddHH").format(new Date());
File file = new File(String.format(pattern, folder));
file.getParentFile().mkdirs();
setWriter(new BufferedWriter(new FileWriter(file, true)));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
使用它,它的log4j配置
log4j.appender.file = test.TestFileAppender
log4j.appender.file.file = xxx/%s/1.log
log4j.appender.file.layout = org.apache.log4j.SimpleLayout
和運行FolderNameChanger每小時一次
class FolderNameChanger extends TimerTask {
FolderNameChanger() {
run();
}
public void run() {
Enumeration<Appender> e = Logger.getRootLogger().getAllAppenders();
while (e.hasMoreElements()) {
Appender a = e.nextElement();
if (a instanceof TestFileAppender) {
((TestFileAppender) a).update();
}
}
}
}
這個任務找到所有TestFileAppenders並改變其路徑
- 1. Log4js javascript創建每日日誌文件
- 2. 如何在ubuntu上每小時按大小輪換一個日誌文件?
- 3. 如何在PHP中創建一個日誌文件
- 4. log4net - 只創建一個日誌文件
- 5. log4j如何每天自動創建一個新的日誌文件而不需要歸檔舊日誌文件
- 6. 每個IP每小時的Python日誌文件數
- 7. NServicebus在每次重啓時創建新的日誌文件
- 8. 如何在每個程序執行的log4j中創建日誌文件?
- 9. 什麼是日誌文件,我們如何在android中創建日誌文件?
- 10. 如何創建「pop_front」的日誌文件?
- 11. 如何在tomcat/logs文件夾中創建日誌文件
- 12. 在Java中,如何同時監視多個日誌文件
- 13. 如何每天創建一個新的日誌
- 14. 在MFC(VC++)中創建日誌文件?
- 15. 在NodeJS中創建日誌文件
- 16. 在PowerShell中創建日誌文件
- 17. Python:從配置文件創建一個時間旋轉日誌
- 18. 未創建日誌文件
- 19. 創建日誌文件C#
- 20. VBA創建日誌文件
- 21. 未創建日誌文件?
- 22. 如何在SAS文件夾中的每個日誌文件中檢查'ERROR:'?日誌文件在UNIX上
- 23. 我不想讓nlog爲每個毫秒創建日誌文件
- 24. NLog爲類的每個實例創建新的日誌文件
- 25. 日誌文件在debbuging時創建,但通過.app啓動時,日誌文件不會創建?
- 26. 如何使用Java創建MySQL日誌
- 27. 如何在每次使用Java運行程序時創建一個新文件
- 28. Java Logger在主目錄中創建空日誌文件
- 29. Apache - 爲每個偵聽端口創建一個新的日誌文件
- 30. 創建一個windows服務,每小時從azure下載文件
運行的每個小時,之後執行一個線程。 – Arpit 2013-02-17 06:28:02
http://www.vogella.com/articles/Logging/article.html – Arpit 2013-02-17 06:33:38