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 :

log4j, changer de fichier via code


Sujet :

Logging Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut log4j, changer de fichier via code
    Bonjour

    Je me doute qur la réponse est non, mais j'aimerai être sur : peut on changer le nom du fichier de sortie d'un appender après le PropertyConfigurator.configure(monfichier), via le code ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    La réponse était oui

    Il suffit de mettre le parametre comme ceci dans le fichier .properties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    log4j.appender.DEBUG_FILE.File=${monFichier}
    ...
    Et dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.setProperty("monFichier","path souhaité");
    PropertyConfigurator.configure(fichier_properties);
    Avec le setProperty bien situé avant le configure

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 69
    Par défaut Je voudrais faire exactement le contraire...
    C'est-à-dire que mon programme doit logger des fichiers... Par exemple des enveloppes SOAP reçues via un web service.
    Mais je voudrais laisser la main au log4j.properties pour qu'il définisse lui-même où stocker ces fichiers.
    Est-ce possible ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    Pour le coup, je ne comprends pas trop ta difficulté, ça me semble la base, à moins que je n'ai pas compris ?

    Si tu veux que le fichier .properties définisse lui même où stocker les fichiers log, sur la ligne "log4j.appender.DEBUG_FILE.File" au lieu d'y mettre un tag qui en fait une valeur à définir plus tard dans le code, i.e. "${variable_définie_dans_le_code}" tu mets "c:/la_ou_tu_veux_tes_logs". Une valeur statique au lieu du tag pour une variable.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 69
    Par défaut Parce qu'en fait ce ne sont pas des fichiers de log
    Les fichiers de log dont tu parles, ce sont ceux qui contiennent les valeurs des LOG.debug, LOG.error etc...
    Or moi je voudrais sauver des fichiers xml, doc, pdf... etc pour pouvoir les consulter après coup.
    Mais j'ai besoin que le chemin de sauvegarde (et pas le nom du fichier) soit configurable dans le log4j.properties.

    J'ai par exemple pensé à faire un nouvel appender dans le log4j.properties, où la propriété File désignerait un répertoire. Mais après comment faire pour lire cette proprété dans le code java ? (à part un properties.load(log4j.properties) )
    Car je dois alors assigner sa valeur en tant que absoluteFilePath au fichier doc ou pdf ou xml que je veux sauvegarder...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 196
    Par défaut
    Je n'ai personnellement jamais utilisé d'autre sortie que du texte brut. Je ne suis pas sur que tu puisses formater une sortie en XML ou même faire du doc mais ça reste à vérifier. Au pire tu fait ton appender qui fait ce que tu veux.

    Lire la propriété, bah employer l'api java properties me semble une méthode simple et efficace. Personnellement je préfère centraliser toutes les propriétés de mon bousin au même endroit, donc je mettais tout dans un XML y compris les détails genre "répertoire des logs", et si j'ai pas bricolé un système pour mettre la config de log4j dedans c'est parce qu'on va pas chercher midi à 14h non plus, je me suis contenté d'y définir le chemin du .properties de log4j.

    Je ne vois pas trop quoi te dire de plus, tu as de quoi faire tout ce que tu veux, il te reste juste à t'organiser non ?

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

Discussions similaires

  1. Changer le readerquota via le code
    Par zax-tfh dans le forum Windows Communication Foundation
    Réponses: 12
    Dernier message: 08/03/2012, 15h31
  2. Changer la description d'un champ texte via code
    Par c_d_o_s dans le forum Reports
    Réponses: 8
    Dernier message: 29/05/2008, 11h47
  3. [XPATH] changer des attributs d'un fichier Xml + code Java
    Par RouRa22 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/03/2008, 09h55
  4. [log4j]Changer dynamiquement le fichier de log
    Par caro_a dans le forum Logging
    Réponses: 1
    Dernier message: 24/11/2007, 11h44
  5. [LOG4J] Changer le fichier de properties à l'execution
    Par longbeach dans le forum Logging
    Réponses: 1
    Dernier message: 25/08/2005, 18h07

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