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 commons logging ou stackTrace


Sujet :

Logging Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 25
    Par défaut Log4j commons logging ou stackTrace
    Bonjour,

    Pour le développement d'un portail (liferay), j'ai dû créer une portlet de création/gestion des users.
    Du fait qu'il y est des users en interne et en externe, je synchronise avec le LDAP pour rapatrier mes users en interne, quand aux externes ils sont créés depuis cette portlet.
    Seulement il arrive que des users créés causent des problèmes.
    J'ai mis une StackTrace en place de facon à pouvoir cibler si le problème provient du LDAP, de liferay,...etc.
    Seulement j'ai des lignes et des lignes de loggs qui remontent dans ma pop-up...
    Je voudrais filtrer ses erreurs en ne remontant uniquement les erreurs commencant par "eu.efa..."

    Je n'arrive pas à le faire avec ma StackTrace, est-ce possible ??
    Sinon est-il possible de le faire avec l'API log4j commons.logging ??
    J'ai vu qu'on pouvait filtrer par type d'erreur (FATAL, INFO...etc) mais est-il possible de le faire en filtrant par un préfixe ??

    Merci !!

  2. #2
    Membre expérimenté

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par défaut
    Tu peux aussi le faire par package voire classe,
    mais je n'ai jamais entendu parler de le faire par filtrage d'erreur.

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 25
    Par défaut
    J'ai créé ma classe StackTrace, j'essaie de lister les erreurs efa.eu, mais ca me retourne une liste vide alors que dans mes logs j'ai bien des erreurs "eu.efa..." :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    package eu.efa.commons;
     
    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.LinkedList;
    import java.util.List;
     
    public class EfaStackTrace {
     
     
    	public static String stringify ( Throwable exn ) {
    		StringWriter str = new StringWriter();
    		PrintWriter pw = new PrintWriter( str );
    		pw.println( exn.getClass().getName () );
    		pw.println( String.valueOf( exn.getMessage() ) );
    		pw.println( dup( "====", 20 ) );
     
    		exn.printStackTrace( pw );
     
    		StackTraceElement[] frames = exn.getStackTrace();
    		List<StackTraceElement> pertainingFrames = framesOnlyInGivenPackage( frames, "eu.efa" );
    		for( int i = 0; i < pertainingFrames.size(); i++ ) {
    		    pw.println( String.valueOf( pertainingFrames.get( i ) ) ); }
     
    		pw.println( dup( "====", 20 ) );
    		if( exn.getCause() != null ) {
    			pw.println( stringify( exn.getCause() ) ); }
    		return str.toString(); }
     
    	private static List<StackTraceElement> framesOnlyInGivenPackage ( StackTraceElement[] elts, String packagePrefix ) {
    	    return new LinkedList<StackTraceElement>(); }
     
    	private static String dup ( String motif, int count ) {
    		StringWriter os = new StringWriter();
    		PrintWriter pw = new PrintWriter( os );
    		while( count-- > 0 ) {
    			pw.print( motif ); }
    		return os.toString(); }
     
    	private static class Exn extends Exception {
    		private static final long serialVersionUID = -1L;
    		public Exn () {
    			super(); } }
     
    	private static void badComputationAux ()  {
    		try {
    			throw new Exn(); }
    		catch( Exception exn ) {
    			throw new RuntimeException( exn ); } }
     
    	public static void main ( String[] args ) {
    		try {
    			badComputationAux(); }
    		catch( Throwable exn ) {
    			System.err.println( EfaStackTrace.stringify( exn ) ); } } 
     
    }
    Une idée du pourquoi du comment ?

  4. #4
    Membre expérimenté

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par défaut
    Tu cherches des erreurs avec eu.efa (dans ton code) ou efa.eu (dans ta phrase) ?

    Sinon, dans ton code, ta methode framesOnlyInGivenPackage ne fait rien (elle retourne juste une liste vide), c'est donc normal que tu ne trouves rien.

    Au vu de ce que tu indiques ici, ton objectif est donc de n'afficher les erreurs que d'un package, log4j te seront donc tres utile puisqu'il permet de le faire.

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 25
    Par défaut
    Je cherche les erreurs eu.efa dans la phrase.
    J'ai bien dans mes logs l'ensemble des messages d'erreurs, seulement je veux faire remonter dans ma pop-up à l'écran de saisie, uniquement les erreurs contenant le préfixe eu.efa

    log4j permet de filtrer mais uniquement sur des erreurs de types FATAL, ERROR...etc mais j'ai rien trouvé en filtrant sur un préfixe.

    Je mets un screen pour comprendre un peu mieux...

    Merci !

Discussions similaires

  1. problème Log4J et Commons-Logging
    Par bous_saad317 dans le forum Logging
    Réponses: 0
    Dernier message: 21/07/2009, 10h33
  2. activer log debugs api commons-logging
    Par ggalou08 dans le forum Logging
    Réponses: 2
    Dernier message: 29/08/2008, 17h04
  3. [Commons-logging]Pb configuration pour log4j
    Par royto dans le forum Logging
    Réponses: 5
    Dernier message: 19/12/2007, 11h05
  4. Probleme avec commons logging
    Par simaradona dans le forum Logging
    Réponses: 8
    Dernier message: 07/09/2006, 18h15
  5. Réponses: 8
    Dernier message: 10/06/2005, 11h48

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