使用java util基于时间旋转日志文件

时间:2014-02-12 12:58:36

标签: java logging file-io java.util.logging

Handler h = new FileHandler("../logs/ParserProcess.log",FILE_SIZE, 20, true);

以上实现了基于文件大小限制定义的日志记录滚动。我想知道如何每次运行旋转日志。这可以在没有log4j的情况下实现,如果是这样的话。

3 个答案:

答案 0 :(得分:0)

我过去做过类似的事情。你可以做的是cutstom根据当前日期/时间命名文件。考虑java类“Calendar”或“SimpleDateFormat”来帮助您入门。使用日期格式,您可以指示每次打开处理程序或BufferedWriter时如何命名文件,或者可以使用日历检查日期,并且只写入“今天”或“本月”的日志”。我希望这对你有用! :)

SimpleDateFormat:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 日历:http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

答案 1 :(得分:0)

记录框架

一个不错的日志框架应该为您做到这一点。

有关日志记录框架的概述,请参阅另一个answer of mine另一个问题。

例如,请参阅您通过RollingFileAppenderfaçadeAPI访问的LogBack框架中的SLF4J

答案 2 :(得分:0)

这个问题的标题询问是否按时间旋转,但是这个问题的正文通过运行询问旋转。

如果您想通过运行或按时间触发文件轮换,则不要使用append选项,然后打开和关闭文件处理程序。

  

处理程序h =新FileHandler(" ../ logs / ParserProcess.log",FILE_SIZE,20,false);

如果每个人都跑步'是JVM进程的生命周期,然后开箱即用。