2010-07-27 19 views
11

Estoy intentando configurar Tomcat y una aplicación web (Atlassian JIRA) para registrar todo en syslog.¿Cómo configurar Tomcat para registrar todo a través de syslog?

Esto es lo que he añadido a los log4j.properties webapp (clases atlassian-jira/WEB-INF// 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 

Sin embargo, nada se envía a través de syslog. Inhalé paquetes salientes en el puerto 514 y no aparece nada.

Gracias por su ayuda!

Respuesta

3

Aquí está la solución que uso actualmente:

  1. Quité el conf/archivo logging.properties
  2. he modificado los atlassian-jira/WEB-INF/classes/log4j.properties con el fin de desactivar todas las operaciones de tala archivo de registro, dejando solamente la consola
  3. he modificado catalina.sh con el fin de tubería de su salida a logger

Me imagino que esta solución no es compatible con Java-world. Pero está funcionando.

Sin embargo, todavía estoy buscando una manera más limpia de iniciar sesión en syslog.

2

También me gustaría realmente un apilador de syslog para JIRA que no requiera un proceso de registrador por separado.

/opt/jira/atlassian-jira/WEB-INF/classes/log4j.properties modificados como se indica en la Q con el resultado relevante de la siguiente manera:

... 
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". 
... 

Podría estar equivocado, pero parece el cargador org.apache.log4j.helpers.Loader.loadClass clase sabe sobre el org.apache.log4j paquete pero NO org.apache.log4j.net paquete a pesar de que residen en el mismo frasco /opt /jira/lib/log4j-1.2.15.jar.

En el momento de escribir: JIRA 4.4.1 a través de Linux 64-bit Installer.

Cuestiones relacionadas