Handler h = new FileHandler("../logs/ParserProcess.log",FILE_SIZE, 20, true);
以上实现了基于文件大小限制定义的日志记录滚动。我想知道如何每次运行旋转日志。这可以在没有log4j的情况下实现,如果是这样的话。
答案 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进程的生命周期,然后开箱即用。