Подтвердить что ты не робот

Как удалить шаблон даты из журналов tomcat

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

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

4b9b3361

Ответ 1

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

Итак, я добавил следующее в файл Tomcat logging.properties. Это удаляет дату из журналов localhost и других трех типов журналов, которые по умолчанию имеют данные 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

Ответ 2

de_simakov answer был по большей части правильным, но у него была опечатка в одну букву. Найдите конфигурацию, аналогичную конфигурации в 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" .

Ответ 3

Документация, на которую вы ссылаетесь, предназначена для ведения журнала в вашем приложении, а не для ведения журнала на сервере Tomcat. Как уже упоминалось в другом ответе, соответствующая документация здесь. В системе Ubuntu Server вы захотите изменить настройки в файле /etc/tomcat 7/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" />

Ответ 4

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

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

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

< Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "prefix =" access_log "suffix =". txt "rotatable =" false "pattern =" % h% l% u% t "% г" % s% b "/ >

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

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

Ответ 5

Более подходящим ответом на ваш прямой вопрос является логическое "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" />

Ответ 6

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

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

Ответ 7

Это должно быть легко на Tomcat 7: посмотреть эти документы

атрибут renameOnRotate

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

Ответ 8

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

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

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

Ответ 9

Я знаю, что это старый, но для полного примера использования 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
}

config.xml сервера: я также удалил _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:

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