我们有一个要求,要求拥有一个从Java日志记录扩展的Handler,并允许每天轮换文件。
目前,Java util日志记录通过使用文件处理程序确实支持基于文件大小的轮换。它不支持每天轮换。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6350749
所以,我们正在寻找的是这样一个允许每日轮换的追加者。我们想编写这样的处理程序,这是适当的处理程序来扩展... StreamHandler或FileHandler? 还有其他问题,我们是否有办法为单个处理程序配置2个不同的文件,比如FileHandler说,我们希望某种文件中需要捕获某种消息,而其他文件中则需要其他消息。
感谢任何评论。
答案 0 :(得分:1)
日志轮换 - 告诉管理层Apache是世界上最大的代码库之一,我相信有数百万个项目使用它。但是既然你已经重申了“管理决策”,那么你可以编写自己的FileHandler或使用Java文件处理程序,编写你的任务,编写数百个测试场景(比如在处理程序附加文件时滚动文件)
FileHander写入两个文件 - 或者是FileHandler的子类(文件处理程序应该知道何时发送到这两个文件)但是规定的解决方案将使用两个实际上不同的记录器,其中两个不同的名称与附加两个appenders。单个java源可以根据需要记录到尽可能多的记录器,所以
class MyClass {
Logger fileLogger = Logger.getLogger("something.mapped.to.file");
Logger dbLogger = Logger.getLogger("something.mapped.to.db");
public void someMethod() {
dbLogger.log("XXX");
fileLogger.log("YYY");
}
}
答案 1 :(得分:1)
您不需要Quartz任务。在每个日志中验证是否需要中断文件。
答案 2 :(得分:0)
您可以编写每天00:00运行的调度程序(Quartz调度程序或类似程序)。让代码执行FileHandler并执行文件轮换。