2010-07-27 2 views
11

J'essaie de configurer Tomcat et une application web (Atlassian JIRA) pour tout enregistrer sur syslog.Comment configurer Tomcat pour tout enregistrer via syslog?

Voici ce que j'ajouté aux log4j.properties WebApp (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 

Cependant, rien n'est envoyé sur syslog. J'ai reniflé des paquets sortants sur le port 514 et rien n'apparaît.

Merci pour votre aide!

Répondre

3

Voici la solution que j'utilise actuellement:

  1. J'ai supprimé le fichier conf/logging.properties
  2. J'ai modifié le Atlassian JIRA-/ WEB-INF/classes/log4j.properties afin de désactiver toutes les opérations d'enregistrement de fichier, laissant uniquement la journalisation de la console
  3. I modifié catalina.sh afin de tuyau à sa sortie logger

J'imagine que cette solution n'est pas compatible avec java-world. Mais ça marche.

Cependant, je suis toujours à la recherche d'un moyen plus simple de se connecter à syslog.

2

Je voudrais aussi vraiment un appender syslog pour JIRA qui ne nécessite pas un processus de journalisation séparé.

/opt/jira/atlassian-jira/WEB-INF/classes/log4j.properties modifié comme indiqué dans le Q avec un résultat pertinent comme suit:

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

Je peux me tromper, mais il semble que le chargeur de classe org.apache.log4j.helpers.Loader.loadClass sait sur le paquet de org.apache.log4j mais PAS org.apache.log4j.net package même si elles se trouvent dans le même pot /opt /jira/lib/log4j-1.2.15.jar.

Au moment de l'écriture: JIRA 4.4.1 via Linux 64-bit Installer.

Questions connexes