Как вращать логи tomcat в Windows?Какой метод самый лучший? - PullRequest
7 голосов
/ 10 ноября 2011

Мне действительно надоело, что я не могу решить проблему ротации логов tomcat на одном нашем сервере Windows после того, как потратил на это бесчисленное количество часов и попробовал различные решения.

  • Окружающая среда: Java 1.6x, Tomcat 6 (работает как служба), log4j 1.2, Server 2003, 32-разрядная

Методы, использованные до сих пор:

  1. cronolog не работал, файлы не создавались после его настройки.

  2. Удалось настроить log4j с DailyRollingFile appender глобально для Tomcat, файлы журнала находятся в процессесоздан без расширения и не вращается.

  3. Пробовал DatedFileAppender тоже, но не добился большого успеха.

  4. Пробовал log4jna на основе Windows Event Log appender для log4j, успех не удался

Пожалуйста, предложите простой способ выполнить эту задачу.

Ответы [ 3 ]

4 голосов
/ 10 ноября 2011

Apache Tomcat предоставляет каталог конфигурации conf , который содержит файл server.xml . На дне этот файл, строка, которая включает в себя регулировочный клапан, называется AccessLogValve должен быть без комментариев и изменен.

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

<Valve
className="org.apache.catalina.valves.AccessLogValve."
directory="logs"
prefix="mysite."
suffix=".log"
pattern='%a %A %b %B %h %l %m %p %q %u %t "%r" %s %U %D %S'
resolveHosts="false"
rotatable="true"
fileDateFormat="yyyy-MM-dd"
/>

Это предложение взято из ссылки Tomcat :

Параметр fileDateFormat позволяет настраивать формат даты в получить доступ к имени файла журнала. Формат даты также решает, как часто файл вращается. Если вы хотите вращаться каждый час, установите это значение на: YYYY-MM-ДД.ЧЧ

1 голос
/ 28 марта 2013

Я наконец решил проблему после долгого перерыва. На этот раз я не коснулся конфигурации журнала Tomcat. Я использовал фантастическую утилиту под названием logrotatewin, которая является переопределением logrotate в Windows. Я уже был знаком с logrotate, поэтому настройка logrotatewin была легкой задачей. Мне пришлось остановить tomcat в prerun и запустить его снова в postrun, чтобы ротация журнала работала, так как tomcat блокирует файл журнала, когда он работает.

0 голосов
/ 22 февраля 2013

Я искал, как вращать журналы Access Valve. Из всех данных, которые я собирал до сих пор, «ротация» просто переключалась бы на следующий файл, основываясь на заданном вами значении fileDateFormat.

Например, значение "yyyy-MM-dd.HH" будет создавать новый файл каждый час. Но, похоже, что число файлов будет продолжать расти, если вы не используете внешний механизм, такой как задание cron (в linux), для их очистки.

...