Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DailRollingFileHandler——文件应该每天轮换_Java_Logging_Java.util.logging - Fatal编程技术网

Java DailRollingFileHandler——文件应该每天轮换

Java DailRollingFileHandler——文件应该每天轮换,java,logging,java.util.logging,Java,Logging,Java.util.logging,我们有一个要求,需要有一个从Java日志扩展而来的处理程序,并允许每天旋转文件 目前,Java util日志确实支持使用文件处理程序根据文件大小进行旋转。它不支持每天轮换 所以,我们正在寻找这样一个可以每天旋转的追加器。我们想写这样的处理程序,哪一个是合适的处理程序来扩展。。。StreamHandler还是FileHandler? 其他的问题是,有没有办法为一个处理程序配置两个不同的文件,比如说FileHandler,比如说,我们希望在一个文件中捕获某种消息,在另一个文件中捕获其他消息 如果您有

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

目前,Java util日志确实支持使用文件处理程序根据文件大小进行旋转。它不支持每天轮换

所以,我们正在寻找这样一个可以每天旋转的追加器。我们想写这样的处理程序,哪一个是合适的处理程序来扩展。。。StreamHandler还是FileHandler? 其他的问题是,有没有办法为一个处理程序配置两个不同的文件,比如说FileHandler,比如说,我们希望在一个文件中捕获某种消息,在另一个文件中捕获其他消息


如果您有任何意见,将不胜感激。

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

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

FileHander写入两个文件-FileHandler的任何子类(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");
    }
}

你不需要这个任务。在每个日志中验证是否需要断开文件。

如果您可以切换到log4j,您可以使用DailyRollingFileAppender,我们正在通过扩展Java日志框架而不是使用第三方框架来探索其他替代方案……好的。。。出于好奇,log4j是一个非常成熟且商业友好的框架,您不想使用它有什么特别的原因吗?管理决策,就这么简单:-)