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] Créer un Logger personnel


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
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Par défaut [log4j] Créer un Logger personnel
    Bonjour

    Est-il possible d'utiliser une classe que j'ai moi-même codée et qui étend org.apache.log4j.Logger ?

    Exemple :

    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
     
    public class MonLogger extends Logger {
     
    	protected MonLogger(String name) {
    		super(name);
    	}
     
    	public void enter(final String msg) {
    		super.debug("Entering - " + msg);
    	}
     
    	public void exit(final String msg) {
    		super.debug("Exiting - " + msg);
    	}
     
    }
    Si oui, comment faire pour instancier un Logger de ce type dans mes classes. En effet la ligne ci-dessus me renvoie un Logger de log4j et non le mien. La ligne ne compile donc pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static final MonLogger LOGGER = MonLogger.getLogger(UserBean.class);
    Merci d'avance 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
    si tu ne défini pas MonLogger.getLogger, tu va utiliser le comportement par défaut de log4j.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Par défaut
    Certes, ce faisant j'utilise toujours la méthode getLogger de la classe mère log4j.
    Mais s'il y a une méthode getLogger(..) comme ceci, c'est qu'on ne peut pas utiliser la constructeur de l'extérieur. Si les gens qui ont codé log4j n'ont pas voulu qu'on puisse faire un new Logger() de l'extérieur, c'est qu'il doit y avoir une bonne raison.

    Qu'est ce que je fais dans ma méthode getLogger(Class clazz) ? N'y a-t-il pas une façon commune de redéfinir cette méthode ?

  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
    effectivement, toutes mes excuses. Pour créer des loggers custom, il faut fournir ton propre loggerfactory. L'ennui, c'est:

    Logger Factories
    The usage of custom logger factories is discouraged and no longer documented.
    le mieux serait plutot que tu utilise un wrapper plutot qu'une sous classe.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Par défaut
    Oui effectivement tu as raison, un wrapper ferait très bien l'affaire. Je vais faire ça.

    Merci.

  6. #6
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    Je sais que la réponse a été trouvé, mais pour en revenir à cette solution, le pattern Wrapper ( adaptateur) si j'ai bien compris.

    Quelle est le rôle de l'adaptateur ?

    Etendre la class logger, ne revient-il pas au même ?

    En fait je crois que je ne comprend pas trop le rôle de ce patron, bien qu'ayant lu différentes doc dessus, donc si vous pouviez me l'expliquer, ou me renvoyer vers une source que vous pensez clair ?

    Le pire, je crois c'est que la solution devrait être ici : http://smeric.developpez.com/java/uml/adaptateur/

    Ils prennent l'exemple du logger justement, mais je n'arrive pas à voir le lien entre LoggerFrancais ( qui doit etre le logger justement de log4j ? ) et l'interface loggerAdapteur

    Merci

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

Discussions similaires

  1. [CKEditor] Créer un bouton personnel
    Par zebuman dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 06/09/2011, 13h44
  2. Créer Class Logger
    Par MABB dans le forum C++
    Réponses: 5
    Dernier message: 18/05/2008, 05h34
  3. Réponses: 3
    Dernier message: 11/10/2006, 11h54
  4. créer un espace personnel pour chaque membre
    Par loady dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2006, 12h54

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