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 :

Emplacement fichiers logs hors jar


Sujet :

Logging Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut Emplacement fichiers logs hors jar
    Bonjour,

    Je suis confronté à un problème lors de la configuration de mon fichier log4j, et la recherche sur le forum et les tutoriaux ne m'a pas permis d'y remédier.

    Le contexte est le suivant : j'ai implémenté le log4j au sein de mon projet, avec un fichier de configuration log4j.properties, se trouvant dans le jar (plus précisément, dans un sous-répertoire des sources java, disons src/ressources/log4j.properties). Que je lance mon programme depuis mon IDE (Eclipse) ou depuis le jar généré, le chargement des propriétés se fait sans problèmes.

    Par contre, ce que je voudrais, c'est que l'emplacement de mes fichiers de logs créés soient au même niveau que le jar.
    Ainsi, si je place mon jar sous "C:/Toto/monJar.jar", je voudrais que les logs s'écrivent sous "C:/Toto/logs/log_info.log" par exemple. Passer un chemin en dur dans le fichier fonctionne, mais je n'arrive pas à lui passer de chemin relatif.

    Si quelqu'un a une idée, je suis preneur.
    Merci.

    Mako.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Donne au moins ton fichier properties
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Effectivement, j'ai "oublié" de mettre le code correspondant... Désolé...

    Code log4j.properties : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    # Niveau DEBUG
    log4j.appender.log1           = org.apache.log4j.RollingFileAppender
    log4j.appender.log1.File      = // C'est la que se situe le soucis...
    log4j.appender.log1.MaxBackupIndex = 10
    log4j.appender.log1.MaxFileSize        = 1000KB
    log4j.appender.log1.Threshold          = debug
    log4j.appender.log1.layout             = org.apache.log4j.PatternLayout
    log4j.appender.log1.layout.ConversionPattern    = %d{ISO8601} %5p : %-35F -> %m%n
     
    // Idem avec d'autres niveau : info et erreur
     
    log4j.category.MON_LOG = DEBUG, stdout1, log1, log2, log3
    // stdout1 correspond a la sortie standard, log2 et log3 aux niveaux d'info et d'erreurs

    Je charge ce fichier de la maniere suivante :

    Code MonLog.java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public static Logger init() {
         PropertyConfigurator.configure(ConstantesImmeubles.PATH_LOG_PROPERTIES);
         logger = Logger.getLogger("MON_LOG");
         return logger;
    }

    Si je passe un chemin en dur pour le "File", cela fonctionne, mais je n'arrive pas à passer de chemins relatifs.

    J'ai essayé de modifier cela depuis la méthode d'init, en jouant avec ((FileAppender) logger.getAppender("log1")).setFile(System.getProperty("user.dir").concat("log-debug.log")). Cela à l'air de fonctionner correctement tant que je suis sous Eclipse, mais dès que je lance le programme depuis son jar, rien ne va plus.

    Mako.

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Et lorsque tu mets "./toto.log", que ce passe-t-il ?
    Je ne sais plus si les répertoires sont créées lorsqu'ils n'existent pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Et lorsque tu mets "./toto.log", que ce passe-t-il ?
    Si dans mon exemple précédent je remplace "log-debug.log" par "./log-debug.log", il me concatène cette chaîne au user.dir, et par conséquent, cela ne fait rien de bon (même sous Eclipse, mais cela me semble normal).

    De même, le jar ne se lance pas (comme dans le cas précédent). J'ai l'impression que cela vient d'une erreur lorsque je tente de modifier mon fichier de propriétés, qui se trouve lui aussi dans le jar (mais sans traces, je ne peux en être sûr).

    Mako.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Malgré les multiples tentatives, je n'arrive pas faire ce que je souhaite (je pense que le problème étant de modifier un fichier présent dans un jar), et je me suis donc rabattu sur une solution certes moins élégante, mais qui a le mérite de fonctionner.

    Mon fichier de propriétés est toujours présent dans le jar, mais le chemin de destination des logs (la propriété "File") n'est pas renseigné.
    Au premier lancement du programme, si le fichier n'est pas présent sur la machine (user.home/MonApplication/log4j.properties), on le copie depuis le jar.
    On se base sur le fichier présent sur la machine de l'utilisateur (hors du jar donc), et on le modifie comme je le disais précédemment (avec ((FileAppender) logger.getAppender("log1")).setFile(...)).

    Merci pour l'aide.

    Mako.

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

Discussions similaires

  1. how to - Modifier l'emplacement fichier log backup ?
    Par Moostiq dans le forum Administration
    Réponses: 1
    Dernier message: 24/03/2011, 15h13
  2. [log4j] Emplacement fichier log dynamique
    Par nims dans le forum Logging
    Réponses: 5
    Dernier message: 25/01/2011, 13h05
  3. [log4j] emplacement des fichiers .log
    Par danyboy85 dans le forum Logging
    Réponses: 7
    Dernier message: 18/01/2007, 08h47
  4. emplacement fichiers logs
    Par Elianora la blanche dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 27/04/2005, 12h41
  5. [JAR] lire un fichier dans un jar OU hors d'un jar
    Par yveslamand dans le forum Général Java
    Réponses: 13
    Dernier message: 25/04/2005, 15h38

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