Как настроить Tomcat для регистрации всего через системный журнал? - PullRequest
11 голосов
/ 27 июля 2010

Я пытаюсь настроить Tomcat и веб-приложение (Atlassian JIRA) для регистрации всего через системный журнал.

Вот что я добавил в webapp log4j.properties (atlassian-jira / WEB-INF / classes / log4j.properties):

log4j.rootLogger=WARN, syslog
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.facility=LOCAL0
log4j.appender.syslog.layout.ConversionPattern=%-5p [%t] [%c]: %m%n
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.SyslogHost=my.syslog.server.fqdn

Однако через системный журнал ничего не отправляется. Я прослушал исходящие пакеты через порт 514. Ничего не появляется.

Спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 28 июля 2010

Вот решение, которое я в настоящее время использую:

  1. Я удалил файл conf / logging.properties
  2. Я изменил atlassian-jira / WEB-INF / classes / log4j.свойства для отключения всех операций регистрации файлов, оставляя только консольное ведение журнала
  3. Я изменил catalina.sh, чтобы направить его вывод в logger

Я думаю, что это решение не совместимо с java-world.Но это работает.

Однако я все еще ищу более чистый способ входа в системный журнал.

2 голосов
/ 23 сентября 2011

Мне также очень хотелось бы, чтобы для JIRA был добавлен системный журнал, для которого не требуется отдельный процесс ведения журнала.

Изменено /opt/jira/atlassian-jira/WEB-INF/classes/log4j.properties, как указано в Q, с соответствующим результатом следующим образом:

...
23-Sep-2011 12:12:44 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
23-Sep-2011 12:12:44 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.32
log4j:ERROR Could not instantiate class [org.apache.log4j.net.SyslogAppender].
java.lang.ClassNotFoundException: org.apache.log4j.net.SyslogAppender
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.apache.log4j.helpers.Loader.loadClass(Loader.java:179)
        at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:320)
        at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:121)
        at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:664)
        at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647)
        at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:476)
        at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
        at org.apache.log4j.Logger.getLogger(Logger.java:118)
        at com.atlassian.jira.startup.LauncherContextListener.<clinit>(LauncherContextListener.java:40)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
        at org.apache.catalina.core.StandardService.start(StandardService.java:525)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
log4j:ERROR Could not instantiate appender named "syslog".
...

Я могу ошибаться, но похоже, что загрузчик класса org.apache.log4j.helpers.Loader.loadClass знает о пакете org.apache.log4j , но НЕ org.apache.log4j.net пакет, даже если они находятся в одном и том же jar / opt / jira / lib / log4j-1.2.15.jar .

На момент написания: JIRA 4.4.1 через 64-битный установщик Linux.

1 голос
/ 27 марта 2015

Для журналов доступа: https://github.com/magwas/SyslogValve Может потребоваться настройка для вашей версии Tomcat, так как используемый API постоянно меняется.

...