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

Logging Java Discussion :

Ajouter une date au repertoire de logging


Sujet :

Logging Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut Ajouter une date au repertoire de logging
    Bonjour,

    Je souhaiterais mettre mes logs dans un repertoire contenant une date, mais la date n'est pas interprete: mon repertoire cree est %d{yyyy-MM-dd} !!!

    Pourtant j'utilise la classe RollingFileAppender, mais j'ai du me tromper qqpart ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <appender name="ROOT" class="org.apache.log4j.RollingFileAppender">
    		<param name="File" value="log/%d{yyyy-MM-dd}/root.log" />
    		<param name="MaxFileSize" value="10000KB" />
    		<param name="MaxBackupIndex" value="10" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-p %C{1} - %m%n" />
    		</layout>
    	</appender>
    Merci pour votre aide !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le rollingfileappender de java utilise le champ "datepattern" pour déterminer la partie variable, qui est ajoutée en fin de fichier. Donc pour les changements de répertoire, c'est rapé, va falloir utiliser d'autres méthodes (appender custom, transfert automatiques à partir de scripts extérieurs, ....)

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut
    J'ai essaye cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<appender name="ROOT" class="org.apache.log4j.RollingFileAppender">
    		<param name="File" value="log/root-%d{yyyy-MM-dd}.log" />
    		<param name="MaxFileSize" value="10000KB" />
    		<param name="MaxBackupIndex" value="10" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-p %C{1} - %m%n" />
    		</layout>
    	</appender>
    mais ne marche pas non plus...
    Quelle classe dois-je utiliser pour pouvoir interpreter une date dans param name="File" ?
    Merci

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    aucune, pour le rollingfileappender, c'est datepattern. Si tu veux un comportement différent, va falloir passer par un appender personnalisé à coder toi même.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut
    Donc il n'existe pas de solution deja existante pour mettre une date dans le nom de son fichier de log ? Je suis assez etonne, mais bon, je vais voir comment je peux me creer mon appender

    Merci pur ton aide

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je viens de trouver ça dans la doc, ca devrait faire ton bonheur

    RollingFileAppender extends FileAppender to backup the log files depending on RollingPolicy and TriggeringPolicy.

    To be of any use, a RollingFileAppender instance must have both a RollingPolicy and a TriggeringPolicy set up. However, if its RollingPolicy also implements the TriggeringPolicy interface, then only the former needs to be set up. For example, TimeBasedRollingPolicy acts both as a RollingPolicy and a TriggeringPolicy.

    RollingFileAppender can be configured programattically or using DOMConfigurator or DOMConfigurator in log4j 1.2.15 or later. Here is a sample configration file:

    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
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration>
     
    <log4j:configuration debug="true">
     
      <appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
          <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
        </rollingPolicy>
     
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%c{1} - %m%n"/>
        </layout>
      </appender>
     
      <root">
        <appender-ref ref="ROLL"/>
      </root>
     
    </log4j:configuration>

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut
    J'ai essaye d'implementer ta solution avec le DailyRollingFileAppender, mais la date ne s'ajoute pas a mon nom de fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <appender name="ROOT" class="org.apache.log4j.DailyRollingFileAppender">
    		<param name="DatePattern" value="'.'yyyy-MM-dd"/>
    		<param name="File" value="log/root.log" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-p %C{1} - %m%n" />
    		</layout>
    	</appender>
    J'ai fait une erreur dans le DatePattern ?

    Merci

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est visiblement la section rollingpolicy de la doc qui est important dans ton cas! (et que t'as oublié de mettre)

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut
    Apparemment c'est plutot le fait que DailyRollingFileAppender ajoute la date des qu'on change de fichier (dans mon cas une fois par jour).
    D'apres la javadoc de log4j
    For example, if the File option is set to /foo/bar.log and the DatePattern set to '.'yyyy-MM-dd, on 2001-02-16 at midnight, the logging file /foo/bar.log will be copied to /foo/bar.log.2001-02-16 and logging for 2001-02-17 will continue in /foo/bar.log until it rolls over the next day.
    Il doit bien exister un type qui permet d'ajouter la date du jour au fichier sans attendre le fichier suivant non ?

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Il y a une solution qui est proposée par tchize_.

    Mais peut-être n'as-tu pas relevé qu'il te parles de org.apache.log4j.rolling.RollingFileAppender et que toi, tu utilises org.apache.log4j.RollingFileAppender. Mais peut-être a-t-il aussi oublié de préciser que sa solution n'est pas intégrée nativement dans log4j, mais fait partie du "extra", et qu'il faut télécharger cette librairie optionnelle.

    Pour la petit histoire, extra contient les évolutions prévues pour Log4J 1.3 qui a été abandonné. Pour ne pas perdre les nouveautés, et pour pouvoir enrichir Log4J 1.2 sans en changer le cœur, ils nous proposent les extras.

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    j'ai péché par paresse, j'était tombé dessus par hasard sans voir la différence

    Par contre, pour renommer dès le départ le fichier, je pense que tu va devoir faire ton propre appender (la pluspart des gens ont, contrairement à toi, besoin que le fichier courant ne porte pas de date)

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Si tu ne rajoute pas de paramètre ActiveFileName, le nom initial correspond bien au FileNamePattern.
    Si tu veux un exemple, je m'étais amusé à reproduire les traces de JUL avec Log4J dans Tomcat, en utilisant ce Appender.

  13. #13
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut
    Citation Envoyé par hasalex Voir le message
    Il y a une solution qui est proposée par tchize_.

    Mais peut-être n'as-tu pas relevé qu'il te parles de org.apache.log4j.rolling.RollingFileAppender et que toi, tu utilises org.apache.log4j.RollingFileAppender. Mais peut-être a-t-il aussi oublié de préciser que sa solution n'est pas intégrée nativement dans log4j, mais fait partie du "extra", et qu'il faut télécharger cette librairie optionnelle.

    Pour la petit histoire, extra contient les évolutions prévues pour Log4J 1.3 qui a été abandonné. Pour ne pas perdre les nouveautés, et pour pouvoir enrichir Log4J 1.2 sans en changer le cœur, ils nous proposent les extras.
    mille excuse tchize_, je n'avais effectivement pas remarque le rolling ...


    Citation Envoyé par hasalex Voir le message
    Si tu ne rajoute pas de paramètre ActiveFileName, le nom initial correspond bien au FileNamePattern.
    Si tu veux un exemple, je m'étais amusé à reproduire les traces de JUL avec Log4J dans Tomcat, en utilisant ce Appender.
    Effectivement, mon fichier a la date des le depart


    Merci a tous les 2 pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Ajouter une Date du mois précedent celui en cours
    Par gabi75 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2010, 14h31
  2. ajouter une date
    Par smile0015 dans le forum Oracle
    Réponses: 7
    Dernier message: 15/12/2009, 14h08
  3. Ajouter à une date
    Par Z3phur dans le forum SQL
    Réponses: 5
    Dernier message: 15/12/2008, 20h17
  4. comment ajouter une date dans un enregistrement
    Par INCO13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/06/2008, 18h59
  5. ajoute une date de reunion pour plusieur enregistrement
    Par popofpopof dans le forum VBA Access
    Réponses: 9
    Dernier message: 10/08/2007, 16h08

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