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 :

[Log4] Produire un fichier de log par utilisateur


Sujet :

Logging Java

  1. #1
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Par défaut [Log4] Produire un fichier de log par utilisateur
    Salut,
    Je suis sur le point de modifier le système de log d'une appli. Celle ci utilisait commons-logging et beaucoup de choses étaient faites à la main dans le code. L'intérêt de log4j devrait être d'externaliser la configuration (du genre indiquer un appender particulier pour un package).
    Cette appli produisait plusieurs logs :
    - un fichier pour les logs de la base. A priori je dois juste spécifier un logger avec un appender différent pour ce package
    - un fichier par utilisateur

    La seconde option est plus complexe. Je ne vois pas trop comment spécifier différents fichiers de sortie pour les mêmes méthodes mais lancé par un user différent.

    Quelqu'un aurait déjà fait une chose similaire ?

    Je pourrais éventuellement surcharger l'appender et logger dans des fichiers différents selon le user, mais comment puis je passer le user en paramêtre à l'appender ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Par défaut
    Je pense que que la bonne solution est de créér ton propre appender héritant de l'appender souhaité (RollingFileAppender par exemple).

    Ensuite, il suffit de surcharger les méthodes nécessaires tu surcharges setFile en super.setFile(fileName + Appli.getCurrentUserName()); et de même pour getFile()

    Ensuite tu logges comme tu le faisais auparavant (Logger.getLogger(this.getClass()).info("Demarrage de l'application")) et c'est ton appender qui se chargera de rajouter le nom de l'utilisateur au fichier.

    Maintenant si ton utilisateur est amené à changer en cours d'éxecution c'est une autre paire de manches ... Il faut que tu rajoutes un EventListener à ton appender ...

    Le mieux est de regarder les sources de log4j pour comprendre ce qu'il se passe.

  3. #3
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Par défaut
    Un rapide test m'a permis de valider le fonctionnement.
    J'ai un peu de mal avec la facon dont log4j récupère les propriétés des appenders mais le comportement semble être bon.

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

Discussions similaires

  1. Tomcat 6 - Un fichier de log par session utilisateur ?
    Par onlytoine dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 14/01/2011, 15h26
  2. [log4j] un fichier de logs par mois
    Par toine62 dans le forum Logging
    Réponses: 5
    Dernier message: 03/03/2009, 12h28
  3. [log4j] Un fichier de log par utilisateur (thread)
    Par El Saigneur dans le forum Logging
    Réponses: 0
    Dernier message: 12/12/2008, 16h08
  4. Un fichier de log par utilisateur
    Par jpclavery dans le forum Logging
    Réponses: 1
    Dernier message: 25/01/2008, 13h58

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