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] emplacement des fichiers .log


Sujet :

Logging Java

  1. #1
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut [log4j] emplacement des fichiers .log
    Bonjour,

    j'utilise actuellement log4j pour gérer mes traces dans une appli web Java. Je souhaite que mes fichiers .log soient stockés à l'intérieur de mon application (dans un répertoire log par exemple), mais je n'y parviens pas.

    Voici mon code :

    log4j.rootLogger=DEBUG, monAppender
    log4j.appender.monAppender=org.apache.log4j.RollingFileAppender
    log4j.appender.monAppender.File=log/trace.log
    log4j.appender.monAppender.MaxFileSize=100KB
    log4j.appender.monAppender.MaxBackupIndex=50
    log4j.appender.monAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.monAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] %m%n
    Avec ce code, les fichiers sont stockés à la racine d'eclipse, dans un répertoire log. Comment faire pour stocker les fichiers dans mon application (en fonciton du contexte) ?

    Merci d'avance pour vos réponses

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Je pense qu'en ecrivant

    /log/trace.log


    ca devrait resoudre ton probleme. le "/" indique la racine du contexte.
    Bonne chance

  3. #3
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Non c'est pire.

    Le "/" semble indiquer la racine du disque car maintenant mon répertoire log est créé à la racine de mon disque

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Vraiment bizarre. Ton fichier log4j.properties est défini ou?
    Une solution serait de mettre le chemin de ton projet dans une variable.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    projet.workspace = C:\Eclipse\Workspace\projet1
    et de mettre dans ton fichier de conf log4j,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    log4j.appender.monAppender.File=${projet.workspace}/log/trace.log

  5. #5
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Mon fichier log4j.properties est défifni dans le répertoire de mes sources, à savoir "WEB-INF/src"

  6. #6
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Je pense qu'il est préférable de laisser ce que tu avais déjà log/trace.log et paramétrer le répertoire d'exécution dans les paramètres de lancement de ton appli (Run...).

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Bonjour

    Une solution possible
    Dans une servlet chargée au demarrage et sans écrire doPost et doGet, tu places une méthode statique qui permettra d'obtenir une variable statique qui contiendra le chemin du contexte.
    Sur la méthode init de la servlet, tu recupères le contexte et tu stockes, dans la variable statique, le chemin complet (getServletContext().getRealPath("/")).
    Puis tu initialise log4j.

    Tu écrit un appender qui herite de FileAppender. Tu surcharge les construceurs et setFile. Dans ta nouvelle definition, tu peux concatener le chemin fournis dans le fichier de conf avec celui renvoyé par la methode statique de la servlet(celle qui renvoie le chemin de /)

    Dans ton fichier de conf tu n'utilise plus la classe FileAppender, mais la tienne.

    J'espère que cela va t'aider
    Cordialement
    Willy

  8. #8
    Membre actif Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Points : 241
    Points
    241
    Par défaut
    Comme le dis maxf1, je pense que ta configuration est correcte. Ton déploiement l'est moins...
    Mais tu devrais également configurer les resources sous /log/* comme étant restreintes d'accès dans web.xml. Pour une application en production, je n'afficherais pas mes logs en "public"! Ou des les mettre sous WEB-INF/log

    Alex

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/01/2008, 00h22
  2. Réponses: 5
    Dernier message: 15/09/2006, 14h26
  3. Réponses: 14
    Dernier message: 24/08/2006, 13h53
  4. Garder une trace des fichiers log
    Par Krispy dans le forum Administration système
    Réponses: 2
    Dernier message: 10/05/2006, 19h20
  5. perte des fichiers logs
    Par jean-jacques varvenne dans le forum Oracle
    Réponses: 11
    Dernier message: 10/12/2004, 14h32

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