IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Log vers syslog


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut Log vers syslog
    Bonjour,

    J'ai une question sur le logger log4j de tomcat. Je tourne sur une vieille version de tomcat (5.5), et je voudrai pouvoir envoyer les logs vers un serveurs syslog dans le but de les centraliser.

    Bon, il existe un tas de tutoriel, et heureusement d'ailleurs. Je tiens à préciser que je ne suis pas développeur, mais je gère le déploiement d'une application sur le tomcat.

    Le problème est que les fichiers sont bien créés, mais le syslog ne logue rien du tout.
    Si je rajoute dans la section <root> l'appender syslog, est ce que je recevrai bien le contenu de tous les fichiers logs avec le threshold info que je lui ai paramétré ou prendra t il la le level du root, à savoir "warn" ?

    Je précise que le syslog fonctionne bien. D'autres appareils logs dessus sur la facility LOCAL0.

    Voici le log4j de l'application:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
     
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
     
      <appender name="Stats" class="org.apache.log4j.FileAppender">
        <param name="file" value="${catalina.base}/logs/stats.log"/>
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern"
               value="%d{yyyyMMddHHmmssSSSSS}|%5p|%x|%m%n"/>
        </layout>
      </appender>
     
      <appender name="ERR" class="org.apache.log4j.FileAppender">
        <param name="file" value="${catalina.base}/logs/errors.log"/>
        <param name="threshold" value="ERROR"/>
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern"
                 value="%d{yyyyMMddHHmmssSSSSS} [%5p] [%C %M] %x %m%n"/>
        </layout>
      </appender>
     
    <appender name="Requests" class="org.apache.log4j.FileAppender">
        <param name="file" value="${catalina.base}/logs/requests.log" />
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern"
            value="%d{yyyyMMddHHmmssSSSSS}|%m%n" />
        </layout>
      </appender>
     
     <appender name="syslog" class="org.apache.log4j.net.SyslogAppender">
        <param name="SyslogHost" value="192.168.5.12" />
        <param name="Facility" value="LOCAL0" />
        <param name="FacilityPrinting" value="true"/>
        <param name="Threshold" value="INFO"/>
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="[%-5p] %c %x %m%n" />
        </layout>
      </appender>
     
    <logger name="StatsLogger" additivity="false">
        <level value="info" />
        <appender-ref ref="Stats" />
      </logger>
     
    <logger name="RequestsLogger" additivity="false">
        <level value="info" />
        <appender-ref ref="Requests" />
      </logger>
     
    <root>
        <level value="warn" />
        <appender-ref ref="ERR" />
      </root>
     
    </log4j:configuration>
    J'espère que vous pourrez me filer un coup de main.

  2. #2
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Pour qu'un appender écrive des choses, il faut qu'il soit associé à un logger, qui peut être <root>.

    A partir de là, le logger envoie les messages qui sont au moins au niveau de son <level>. Ensuite, le appender écrit effectivement les messages qui sont au moins au niveau de son threshold.

    Donc si le niveau du logger est plus élevé que le threshold du appender, ce dernier ne sert à rien.

    En conclusion, dans ton cas, si tu associes ton appender syslog à root, ne sortiront que les messages à partir de warn.

  3. #3
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut
    Ok, alors il ne me suffit que d'ajouter un logger pour mon syslog:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <logger name="SyslogLogger" additivity="false">
        <level value="info" />
        <appender-ref ref="syslog" />
      </logger>
    Et là ça devrait commencer à logger. SI ça ne fonctionne pas, c'est qu'il y a un autre problème, qui ne relève pas de mon log4j (réseau peut-être ?).

  4. #4
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Ça m'étonnerait que ça marche. Tu ne peux pas choisir le nom des loggers. C'est un choix qui est fait au développement.
    Donc soit tu travailles avec root, soit tu demandes aux devs.

Discussions similaires

  1. Logs oracle vers syslog-ng
    Par lfuine dans le forum Oracle
    Réponses: 0
    Dernier message: 05/07/2011, 12h11
  2. [WS 2003] Envoi de logs vers syslog-ng
    Par julsniper dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 30/06/2009, 16h46
  3. Envoi des logs vers syslog-ng
    Par julsniper dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 27/04/2009, 11h52
  4. [Log4j][JMS] exporter logs vers files JMS ?
    Par goldandlink dans le forum Logging
    Réponses: 2
    Dernier message: 27/12/2006, 17h16
  5. transformation fichier log vers XML
    Par natacha79 dans le forum Logging
    Réponses: 2
    Dernier message: 09/06/2006, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo