Как настроить Tomcat для файлов rollover catalina.log - PullRequest
5 голосов
/ 10 февраля 2012

Я пытаюсь настроить мой tomcat на файлы журнала при опрокидывании, как только будет достигнут предел размера.Я использую tomcat в качестве службы Windows и перенаправляю весь свой стандартный вывод на catalina.log.Вот как я настроил logging.properties, чтобы установить ограничение размера.Но это не работает.

logging.properties

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.limit = 100000 # size 100kb 
1catalina.org.apache.juli.FileHandler.count = 5


2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
3manager.org.apache.juli.FileHandler.prefix = manager.

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = e:/apache-tomcat/logs/server_111-1001
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
#org.apache.catalina.startup.ContextConfig.level = FINE
#org.apache.catalina.startup.HostConfig.level = FINE
#org.apache.catalina.session.ManagerBase.level = FINE
#org.apache.catalina.core.AprLifecycleListener.level=FINE

Но 1catalina.org.apache.juli.FileHandler.limit = 100000, похоже, не работает

Ответы [ 2 ]

9 голосов
/ 14 октября 2013

org.apache.juli.FileHandler не поддерживает ротацию в зависимости от размера файла и не имеет свойств limit и count, которые вы пытаетесь установить ( см. Документы ).Вместо этого вы можете использовать стандартный Java java.util.logging.FileHandler, который поддерживает ротацию по размеру.Вы должны изменить следующие строки в вашей конфигурации:

handlers = 1catalina.java.util.logging.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.java.util.logging.FileHandler, java.util.logging.ConsoleHandler

Также обратите внимание, что Java FileHandler настроена немного иначе, чем Tomcat FileHandler

1catalina.java.util.logging.FileHandler.level = FINEST
1catalina.java.util.logging.FileHandler.pattern = <your log dir>/catalina%g.log
1catalina.java.util.logging.FileHandler.limit = 100000
1catalina.java.util.logging.FileHandler.count = 5
1catalina.java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

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

1 голос
/ 27 января 2016

Согласно официальной документации Tomcat 7 :


открытый класс FileHandler расширяет java.util.logging.Handler

Реализация обработчика, который добавляет сообщения журнала в файл с именем {prefix} {date} {суффикс} в настроенном каталоге.

Доступны следующие свойства конфигурации:

  • каталог - каталог для создания файла журнала.Если путь не абсолютный, он относится к текущему рабочему каталогу приложения.В файлах конфигурации Apache Tomcat обычно указывается абсолютный путь для этого свойства, $ {catalina.base} / logs Значение по умолчанию: logs

  • вращаемое - если установлено значение true, файл журнала будет повернут напервая запись после полуночи и имя файла будет {префикс} {дата} {суффикс}, где дата - гггг-мм-дд.Если false, файл не будет повернут, и имя файла будет {префикс} {суффикс}.Значение по умолчанию: true

  • prefix - ведущая часть имени файла журнала.Значение по умолчанию: juli.

  • суффикс - конечная часть имени файла журнала.Значение по умолчанию: .log

  • bufferSize - Настройка буферизации.Значение 0 использует системную буферизацию по умолчанию (обычно используется буфер 8 КБ).Значение <0 заставляет писателя сбрасываться при каждой записи журнала.Значение> 0 использует BufferedOutputStream с заданным значением, но обратите внимание, что системная буферизация по умолчанию также будет применяться.Значение по умолчанию: -1

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

  • level - порог уровня для этого обработчика.См. Класс java.util.logging.Level для возможных уровней.Значение по умолчанию: ALL

  • filter - Имя класса реализации java.util.logging.Filter для этого обработчика.Значение по умолчанию: unset

  • formatter - Имя класса реализации java.util.logging.Formatter для этого обработчика.Значение по умолчанию: java.util.logging.SimpleFormatter

...