Как удалить шаблон даты из логов tomcat - PullRequest
21 голосов
/ 22 декабря 2010

По умолчанию Tomcat добавляет дату в файлы журнала, например, localhost.2010-12-22.log и то же самое с журналом catalina.Мне не нужна дата в файле журнала, и я не могу найти, как ее удалить.Документация по ведению журнала ничего не говорит о шаблоне даты.Любые идеи с благодарностью.

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

Ответы [ 9 ]

26 голосов
/ 20 мая 2013

Ни один из других ответов мне не очень помог, хотя Томас был самым близким.Документация, которую я нашел, была:

Поэтому я добавил следующее в файл logging.properties Tomcat.Это удаляет дату из журналов локального хоста и другие три типа журналов, которые Tomcat датирует по умолчанию:

    1catalina.org.apache.juli.FileHandler.rotatable = false
   2localhost.org.apache.juli.FileHandler.rotatable = false
     3manager.org.apache.juli.FileHandler.rotatable = false
4host-manager.org.apache.juli.FileHandler.rotatable = false
   #
   # default is true, which causes a date to be added to the filename

    1catalina.org.apache.juli.FileHandler.suffix = log
   2localhost.org.apache.juli.FileHandler.suffix = log
     3manager.org.apache.juli.FileHandler.suffix = log
4host-manager.org.apache.juli.FileHandler.suffix = log
   #
   # default is .log, but without date, the extra dot is not needed
5 голосов
/ 14 ноября 2012

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

<Valve className="org.apache.catalina.valves.AccessLogValve"
      directory="logs"  prefix="http_access" suffix="log"  pattern="common" 
      rotatable="false" resolveHosts="false" />

Обратите внимание на атрибут rotatable = "false" .

4 голосов
/ 27 апреля 2011

Документация, на которую вы ссылаетесь, предназначена для регистрации в вашем приложении, а не для регистрации самим сервером Tomcat. Как уже упоминалось в другом ответе, соответствующая документация: здесь . В системе Ubuntu Server вы можете изменить настройки в /etc/tomcat7/server.xml. Этот файл может находиться в другом месте вашей системы.

Конфигурация, подобная этой, не позволит Tomcat вставить дату в имя файла журнала, но также предотвратит поворот вашего журнала доступа с помощью Tomcat, что, вероятно, является плохой идеей, если вы не настроите соответствующий logrotate конфигурация для сервера.

<Valve className="org.apache.catalina.valves.AccessLogValve"
      directory="logs"  prefix="http_access" suffix="log"  pattern="common" 
      rotateable="false" resolveHosts="false" />
3 голосов
/ 20 апреля 2015

Это должно быть легко для Tomcat 7: см. Этот документ

атрибут renameOnRotate

По умолчанию для вращающегося журнала имя файла журнала активного доступа будетсодержит текущую метку времени в fileDateFormat.Во время поворота файл закрывается, и создается и используется новый файл со следующей отметкой времени в имени.Если для параметра renameOnRotate задано значение true, отметка времени больше не является частью имени активного файла журнала.Только во время вращения файл закрывается и затем переименовывается, чтобы включить метку времени.Это похоже на поведение большинства каркасов журналов при ротации по времени.Значение по умолчанию: false

2 голосов
/ 20 апреля 2014

Более подходящим ответом на ваш прямой вопрос является логическое "renameOnRotate". Предполагается, что вы хотите ежедневное ведение журнала, но не хотите отметку времени. Это даст имя файлу на основе префикса / суффикса и добавит метку времени в файл журнала после его поворота:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access" suffix=".log" renameOnRotate="true"
           pattern="%a %A %h %H %l %m %t %u %U &quot;%r&quot; %s %b " resolveHosts="false" />
2 голосов
/ 03 января 2013

Волшебное свойство для регистрации JULI по умолчанию в Tomcat - «вращаемое». Обычно существует два места, где ведение журнала определяется в установках по умолчанию: logging.properties и конфигурации сервера (server.xml).

Для logging.properties вы должны использовать это: 1catalina.org.apache.juli.FileHandler.rotatable = false

Для конфигурации сервера это будет выглядеть так:

Пожалуйста, смотрите здесь для получения более подробной информации:

http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve

1 голос
/ 22 декабря 2010

Ведение журнала Tomcat регулируется элементами конфигурации <Valve>, обычно в server.xml или context.xml.Они позволяют вам управлять такими вещами, как суффикс данных.

Вот документы для значения журнала доступа , который, как я полагаю, вы подразумеваете под localhost.2010-12-22.log.Не уверен насчет catalina.out, но для этого нужно использовать аналогичный механизм.

0 голосов
/ 14 мая 2019

Я знаю, что это старый, но для полного примера использования logrotate.d не забудьте заменить его версией tomcat.Вы должны отредактировать и server.xml, и logging.properties, а затем отредактировать / создать конфигурацию logrotate.Кроме того, ваш путь к файлам конфигурации может быть другим.

logrotate config:

vi /etc/logrotate.d/tomcat<version>
/var/log/tomcat<version>/catalina.out 
{
    daily
    rotate 12
    compress
    copytruncate
    create 640 tomcat adm
}
/var/log/tomcat<version>/*.log
{
    daily
    rotate 12
    compress
    copytruncate
    missingok
    sharedscripts
    postrotate
      if invoke-rc.d tomcat<version> status > /dev/null 2>&1; then \
        invoke-rc.d tomcat<version> restart > /dev/null 2>&1; \
      fi;
    endscript
}

server.xml config: я также удалил _log.из префикса, поэтому он становится localhost_access.log

vi /var/lib/tomcat<version>/conf/server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  prefix="localhost_access" suffix=".log" rotatable="false"
  pattern="%h %l %u %t &quot;%r&quot; %s %b" />

logging.properties config:

vi /var/lib/tomcat<version>/conf/logging.properties
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.suffix = log
1catalina.org.apache.juli.FileHandler.rotatable = false

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
2localhost.org.apache.juli.FileHandler.suffix = log
2localhost.org.apache.juli.FileHandler.rotatable = false

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
3manager.org.apache.juli.FileHandler.suffix = log
3manager.org.apache.juli.FileHandler.rotatable = false

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
4host-manager.org.apache.juli.FileHandler.suffix = log
4host-manager.org.apache.juli.FileHandler.rotatable = false
0 голосов
/ 15 октября 2015

Ответы, цитирующие "renameOnRotate", неверны.Это относится только к журналу доступа, а не к «основной» записи (именно этого хочет вопрос, поскольку он заключил в кавычки журнал «localhost».

Если вам нужно как ротация журнала, так и отсутствие меток времени (чтокак правило, это так), плохая новость в том, что это невозможно из коробки с tomcat: (

Лучшее решение в этом случае - настроить его на использование log4j глобально, что является более гибким ипозволит вам быть настроенным таким образом.

...