我想在每个小时内在特定文件夹中创建和存储日志文件。 如何处理? 任何示例都会有所帮助。如何在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