DailyRollingFileHandler — файлы должны меняться ежедневно.

У нас есть требование, которое требует наличия обработчика, расширенного от ведения журнала Java и позволяющего ежедневно менять файлы.

В настоящее время ведение журнала утилиты Java поддерживает ротацию в зависимости от размера файла с помощью обработчика файлов. Он не поддерживает ежедневную ротацию. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6350749

Итак, мы ищем такое приложение, которое допускает ежедневную ротацию. Мы хотели бы написать такой обработчик и какой обработчик следует расширить для... StreamHandler или FileHandler? И другие вопросы: можем ли мы настроить 2 разных файла для одного обработчика, скажем, FileHandler, скажем, например, мы хотели бы, чтобы некоторые сообщения были захвачены в одном файле, а другие сообщения в другом файле.

Был бы признателен за любые комментарии.


person Sukhhhh    schedule 18.03.2010    source источник
comment
Если вы можете переключиться на log4j, вы можете использовать журнал DailyRollingFileAppender .apache.org/log4j/1.2/apidocs/org/apache/log4j/   -  person saugata    schedule 18.03.2010
comment
Мы изучаем другие альтернативы, расширяя среду ведения журналов Java вместо использования сторонних платформ...   -  person Sukhhhh    schedule 18.03.2010
comment
ОК ... из любопытства, log4j - довольно зрелый и коммерчески удобный фреймворк, есть ли какие-то конкретные причины, по которым вы не хотите его использовать?   -  person saugata    schedule 18.03.2010
comment
управленческое решение, так просто :-)   -  person Sukhhhh    schedule 18.03.2010


Ответы (3)


Ротация журналов. Скажите руководству, что Apache — одна из крупнейших компаний по разработке кода в мире, и я уверен, что миллионы проектов используют его. Но поскольку вы повторили «Управленческое решение», вы можете написать свой собственный FileHandler или использовать обработчик файлов Java, написать свои задачи, написать много сотен сценариев тестов (например, кварцевый прокат файла, когда обработчик добавляет их)

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");
    }
}
person Kannan Ekanath    schedule 18.03.2010

Вам не нужна задача Quartz. Проверяйте в каждом журнале, есть ли необходимость сломать файл.

person Sebastião Santos    schedule 03.10.2012

Вы можете написать планировщик (планировщик Quartz или что-то подобное), который запускается в 00:00 ежедневно. Пусть код выполняет функции FileHandler и выполняет ротацию файлов.

person navr    schedule 18.03.2010