Можно ли настроить java.util.logging для использования сжатых файлов журнала? - PullRequest
6 голосов
/ 07 октября 2009

Можно ли настроить java.util.logging для сжатия файлов журнала, когда он «катится» на новый файл журнала? Например, извлечение из моего файла конфигурации журнала выглядит так:

java.util.logging.FileHandler.level     = ALL
java.util.logging.FileHandler.pattern   = /blah.log
java.util.logging.FileHandler.limit     = 10000000
java.util.logging.FileHandler.count     = 5

В идеале я хотел бы, чтобы текущие сообщения журнала записывались в blah.log.0 с сохранением blah.log.1.gz, blah.log.2.gz и т. Д.

Также обратите внимание, что я не хочу использовать другую структуру ведения журналов.

Ответы [ 3 ]

8 голосов
/ 07 октября 2009

Да, но вы должны написать свой собственный обработчик файлов. Просто скопируйте исходный код для FileHandler в свой проект (вы не можете расширить класс любым полезным способом) и измените метод open() для MeteredStream.

После этого просто используйте обычную конфигурацию для использования вашего нового обработчика.

3 голосов
/ 07 октября 2009

Нет, не без написания этого самостоятельно, но вы можете запланировать работу cron, которая делает это регулярно. Возможно, это было бы самое быстрое решение.

2 голосов
/ 07 октября 2009

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

Если вы действительно хотите сделать это в Java, вам, возможно, придется написать свой собственный обработчик файлов.
Проверьте метод, который создает новый файл, и попробуйте сжать предыдущий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...