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 :

Creer mon propre niveau


Sujet :

Logging Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut Creer mon propre niveau
    Salut tt le mde,

    voila qq heure que je me prend la tete sur un pb!!

    j'essaye de créer des niveaux de log supplementaire de INFO, DEBUG, ERROR...
    je sais que c'est possible en cherchant sur le net, mais soit il n'expliquait pas comment faire soit les liens vers les pages etait mort :p
    ou encore je suis un boulet et j'ai laisser passé la solution

    donc voila comment je m'y prend pour logger mes evenements : j'ai un fichier log4j.properties :

    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
    59
    #------------------------------------------------------------------------------------
    # 							
    #		Defnition des  logs
    #
    #------------------------------------------------------------------------------------
     
    log4j.rootCategory=INFO, console
     
    log4j.logger.src= INFO, general
    log4j.additivity.src= false
     
    log4j.logger.src.Monitoring= INFO, monitoring
    log4j.additivity.src.Monitoring= false
     
    #------------------------------------------------------------------------------------
    #
    #		Defintion Console
    #
    #------------------------------------------------------------------------------------
     
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
     
    # Pattern to output the caller's file name and line number.
    log4j.appender.console.layout.ConversionPattern=%d{yyyyMMdd HHmmss} %5p [%C{1}] %m%n
     
    #------------------------------------------------------------------------------------
    #
    #		Defintion Monitoring file
    #
    #------------------------------------------------------------------------------------
     
    # Definition de la sortie fichier fileLog de monitoring
    log4j.appender.monitoring=org.apache.log4j.RollingFileAppender
    log4j.appender.monitoring.File=D:/Monitoring.log
    log4j.appender.monitoring.MaxFileSize=100KB
     
    # Keep 3 backup file
    log4j.appender.monitoring.MaxBackupIndex=3
     
    log4j.appender.monitoring.layout=org.apache.log4j.PatternLayout
    log4j.appender.monitoring.layout.ConversionPattern=%d{yyyyMMdd HHmmss} %5p [%C{1}] %m%n
     
    #------------------------------------------------------------------------------------
    #
    #		Defintion Log general file
    #
    #------------------------------------------------------------------------------------
     
    # Definition de la sortie fichier fileLog de recylingManager
    log4j.appender.general=org.apache.log4j.RollingFileAppender
    log4j.appender.general.File=D:/RecyclingManager.log
    log4j.appender.general.MaxFileSize=100KB
     
    # Keep 3 backup file
    log4j.appender.general.MaxBackupIndex=3
     
    log4j.appender.general.layout=org.apache.log4j.PatternLayout
    log4j.appender.general.layout.ConversionPattern=%d{yyyyMMdd HHmmss} %5p [%C{1}] %m%n
    voila donc avec ca je log dans des fichiers respectifs des evenement different.
    Et pour la suite j'ai donc besoin de niveaux supplementaire et je n'ai absolument aucune idée de comment faire qq chose comme log4j.logger.level=toto

    Merci de vos reponses

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 75
    Par défaut
    c'est bon j'ai trouvé,

    j'ai utiliser une classe dans la classe qui extends de Level,

    voila le bout de code de mon inner classe pour ceux que ca interesse :

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    	private static class MyTraceLevel  extends Level{
     
    		private static final long serialVersionUID = 1L;
     
    	    public static final int ROOT_ELEMENT_CHANGE_INT = DEBUG_INT-10;
    	    public static final int ELEMENT_CHANGE_INT = INFO_INT;
     
    	    public static final int EXPORT_DOCUMENT_INT = TRACE_INT-10;
    	    public static final int DOCUMENT_ROOT_ELEMENT_CHANGE_INT = DEBUG_INT-10;
    	    public static final int DOCUMENT_ELEMENT_CHANGE_INT = INFO_INT;
     
     
    	    /**
                 * {@link Level} representing my log level
                 */
    	    public static final Level ROOT_ELEMENT_CHANGE = new MyTraceLevel(ROOT_ELEMENT_CHANGE_INT,"ROOT ELEMENT CHANGE",1);
    	    public static final Level ELEMENT_CHANGE = new MyTraceLevel(ELEMENT_CHANGE_INT,"ELEMENT CHANGE",2);
    	    public static final Level EXPORT_DOCUMENT = new MyTraceLevel(EXPORT_DOCUMENT_INT,"EXPORT DOCUMENT",1);
    	    public static final Level DOCUMENT_ROOT_ELEMENT_CHANGE = new MyTraceLevel(DOCUMENT_ROOT_ELEMENT_CHANGE_INT,"DOCUMENT ROOT ELEMENT CHANGE",2);
    	    public static final Level DOCUMENT_ELEMENT_CHANGE = new MyTraceLevel(DOCUMENT_ELEMENT_CHANGE_INT,"DOCUMENT ELEMENT CHANGE",3);
     
     
    	    /**
                 * Constructor
                 */
    	    protected MyTraceLevel(int arg0, String arg1, int arg2) {
    	        super(arg0, arg1, arg2);
     
    	    }
    	    public static Level toLevel(java.lang.String sArg){
    	    	if (sArg != null && sArg.toUpperCase().equals("ROOT ELEMENT CHANGE")) {
    	            return ROOT_ELEMENT_CHANGE;
    	        }
    	    	else if (sArg != null && sArg.toUpperCase().equals("ELEMENT CHANGE")) {
    	    		 return ELEMENT_CHANGE;
    	    	}
    	    	else if (sArg != null && sArg.toUpperCase().equals("EXPORT DOCUMENT")) {
    	    		 return EXPORT_DOCUMENT;
    	    	}
    	    	else if (sArg != null && sArg.toUpperCase().equals("DOCUMENT ROOT ELEMENT CHANGE")) {
    	    		 return DOCUMENT_ROOT_ELEMENT_CHANGE;
    	    	}
    	    	else if (sArg != null && sArg.toUpperCase().equals("DOCUMENT ELEMENT CHANGE")) {
    	    		 return DOCUMENT_ELEMENT_CHANGE;
    	    	}	    	
    	        return (Level) toLevel(sArg, Level.INFO);
    	    }
     
    	    public static Level toLevel(int val) {
    	        if (val == ROOT_ELEMENT_CHANGE_INT) {
    	            return ROOT_ELEMENT_CHANGE;
    	        }
    	        else if (val == ELEMENT_CHANGE_INT) {
    	            return ELEMENT_CHANGE;
    	        }
    	        else if (val == EXPORT_DOCUMENT_INT) {
    	            return EXPORT_DOCUMENT;
    	        }
    	        else if (val == DOCUMENT_ROOT_ELEMENT_CHANGE_INT) {
    	            return DOCUMENT_ROOT_ELEMENT_CHANGE;
    	        }
    	        else if (val == DOCUMENT_ELEMENT_CHANGE_INT) {
    	            return DOCUMENT_ELEMENT_CHANGE;
    	        }
    	        return (Level) toLevel(val, Level.INFO);
    	    }
     
     
    	    public static Level toLevel(int val, Level defaultLevel) {
    	    	if (val == ROOT_ELEMENT_CHANGE_INT) {
    	            return ROOT_ELEMENT_CHANGE;
    	        }
    	        else if (val == ELEMENT_CHANGE_INT) {
    	            return ELEMENT_CHANGE;
    	        }
    	        else if (val == EXPORT_DOCUMENT_INT) {
    	            return EXPORT_DOCUMENT;
    	        }
    	        else if (val == DOCUMENT_ROOT_ELEMENT_CHANGE_INT) {
    	            return DOCUMENT_ROOT_ELEMENT_CHANGE;
    	        }
    	        else if (val == DOCUMENT_ELEMENT_CHANGE_INT) {
    	            return DOCUMENT_ELEMENT_CHANGE;
    	        }
    	        return Level.toLevel(val,defaultLevel);
    	    }
     
     
    	    public static Level toLevel(String sArg, Level defaultLevel) {                 
    	    	if (sArg != null && sArg.toUpperCase().equals("ROOT ELEMENT CHANGE")) {
    	            return ROOT_ELEMENT_CHANGE;
    	        }
    	    	else if (sArg != null && sArg.toUpperCase().equals("ELEMENT CHANGE")) {
    	    		 return ELEMENT_CHANGE;
    	    	}
    	    	else if (sArg != null && sArg.toUpperCase().equals("EXPORT DOCUMENT")) {
    	    		 return EXPORT_DOCUMENT;
    	    	}
    	    	else if (sArg != null && sArg.toUpperCase().equals("DOCUMENT ROOT ELEMENT CHANGE")) {
    	    		 return DOCUMENT_ROOT_ELEMENT_CHANGE;
    	    	}
    	    	else if (sArg != null && sArg.toUpperCase().equals("DOCUMENT ELEMENT CHANGE")) {
    	    		 return DOCUMENT_ELEMENT_CHANGE;
    	    	}	    	
    	    return Level.toLevel(sArg,defaultLevel);
    	 }
    	}
    et ensuite pour utiliser la trace :

    log.log(MyTraceLevel.ROOT_ELEMENT_CHANGE,"ROOT ELEMENT CHANGE TRACE TEST");

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

Discussions similaires

  1. creer mon propre autonumero
    Par abouassem dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 08/04/2013, 16h36
  2. [Développement] Creer mon propre composant en aggregeant des composants existants ?
    Par djdoxy dans le forum Apple
    Réponses: 1
    Dernier message: 23/03/2011, 09h46
  3. [Forum] Je souhaite créer mon propre script de Forum : fonctionnalités ?
    Par t-die dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 27/10/2006, 11h13
  4. Réponses: 4
    Dernier message: 13/08/2005, 10h20
  5. [apache] probleme d'accès à mon propre serveur
    Par sunfunfree dans le forum Apache
    Réponses: 6
    Dernier message: 15/02/2005, 16h16

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