2

我们有一个要求,它需要一个从 Java 日志扩展而来的处理程序,并允许每天轮换文件。

目前,Java util logging 确实支持使用 File Handler 基于文件大小进行轮换。它不支持每天轮换。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6350749

所以,我们正在寻找这样一个允许每日轮换的 appender。我们想编写这样的处理程序,哪个是扩展的合适的处理程序...... StreamHandler 或 FileHandler ?其他问题是,有没有办法我们可以为单个处理程序配置 2 个不同的文件,比如说 FileHandler,例如,我们希望某种消息需要在一个文件中捕获,而其他消息在另一个文件中。

任何意见将不胜感激。

4

3 回答 3

1

你不需要石英任务。验证每个日志是否需要中断文件。

于 2012-10-03T20:29:14.257 回答
1

日志轮换 - 告诉管理层 Apache 是世界上最大的代码库之一,我相信有数百万个项目在使用它。但是由于您已经重申了“管理决策”,您可以编写自己的 FileHandler 或使用 Java File 处理程序,编写您的任务,编写数百个测试场景(例如,当处理程序附加它们时,石英滚动文件)

FileHander 写入两个文件 - FileHandler 的子类(文件处理程序应该知道何时发送到这两个文件)但规定的 解决方案是使用两个实际不同的记录器,它们具有两个不同的名称,并附加了两个附加程序。单个 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");
    }
}
于 2010-03-18T09:50:06.417 回答
0

您可以编写一个每天 00:00 运行的调度程序(Quartz 调度程序或类似的东西)。让代码执行 FileHandler 的工作并执行文件轮换。

于 2010-03-18T06:06:38.433 回答