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

Entrée/Sortie Java Discussion :

Supprimer une phrase où il y a ue chaine x d'un fichier log4j


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut Supprimer une phrase où il y a ue chaine x d'un fichier log4j
    Bonjour,
    J'ai developpé une application java en utilisant l'api de journalisation log4j.
    Cette api offre plusieurs niveaux de journalisation mais je crois quelle n'offre pas de filtre au sein de chaque niveau c'est à dire : je ne peux pas ne pas journaliser un message de type DEBUG particulier conetant le mot "_ALL_NAMESPACES" par exemple :
    Voici un apperçu du fichier log que je veux traiter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    2007-08-28 21:39:50,625 [AWT-EventQueue-0] DEBUG org.apache.commons.scxml.Context  - previousState = currentState
    2007-08-28 21:39:50,625 [AWT-EventQueue-0] DEBUG org.apache.commons.scxml.Context  - _ALL_NAMESPACES = null
    2007-08-28 21:39:50,625 [AWT-EventQueue-0] DEBUG org.apache.commons.scxml.Context  - _ALL_NAMESPACES = {=http://www.w3.org/2005/07/scxml, my=http://my.custom-actions.domain/CUSTOM}
    2007-08-28 21:39:50,625 [AWT-EventQueue-0] DEBUG org.apache.commons.scxml.Context  - currentState = BEGIN
    Ce que je veux c'est de faire les choses à la main c'est à dire enregistrer le log dans un fichier temp.txt et copier ce fichier dans un fichier final.txt tout en supprimant les lignes contenant "_ALL_NAMESPACES" dans mon fichier... les lignes doivent rester contatinées.

    J'ai vraiment besoin de l'aide svp ! J'ai cherché sans rien trouver


    Merci.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Par défaut
    Essaie d'utiliser 2 logger différents, avec le second qui redirige tes lignes autre part. Il ya peut être mieux mais je ne vois pas quoi ...

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut
    Re :
    Bon c'est ça le problème ... Avec log4j le filtre que je connais c'est pour les niveau c'est à dire DEBUG , FATAL , WARN ... mais moi je veux filtrer au sein du type DEBUG ... Je ne voix pas la possiblité de faire 2 loggers si c'était le cas le prblème ne se posait plus.
    Ps : Les log proviennent d'une seule classe.
    S'il n'y pas de solution "propre" je dois le faire à la main ce qui me pose aussi un problème puisque je n'arrive pas un créer un bout de code java supprimant simplement les lignes d'un fichier conenant une chaine "xxxxxxx".

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Par défaut
    Citation Envoyé par devfd0 Voir le message
    Re :
    Bon c'est ça le problème ... Avec log4j le filtre que je connais c'est pour les niveau c'est à dire DEBUG , FATAL , WARN ... mais moi je veux filtrer au sein du type DEBUG ... Je ne voix pas la possiblité de faire 2 loggers si c'était le cas le prblème ne se posait plus.
    Ps : Les log proviennent d'une seule classe.
    S'il n'y pas de solution "propre" je dois le faire à la main ce qui me pose aussi un problème puisque je n'arrive pas un créer un bout de code java supprimant simplement les lignes d'un fichier conenant une chaine "xxxxxxx".
    Oui, je sais, je me sert aussi de l'api log4j dans mes projets.
    Je ne me suis peut etre pas bien exprimé, il est normalement possible de coder le paramètrage d'un logger sans passer par le fichier de conf xml , c'est pour ca que je te proposais dans créer un second.
    Sinon tu peux créer un nouvel appender qui trace que le niveau INFO dans un fichier et un autre appender qui trace que le niveau DEBUG dans un autre fichier.
    Autrement, je ne pense pas que log4j est prévu des filtres de chaines de caractères dans leur fichier de conf (je me trompe peut etre)

  5. #5
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut
    Citation Envoyé par ggounouman Voir le message
    Sinon tu peux créer un nouvel appender qui trace que le niveau INFO dans un fichier et un autre appender qui trace que le niveau DEBUG dans un autre fichier.
    Autrement, je ne pense pas que log4j est prévu des filtres de chaines de caractères dans leur fichier de conf (je me trompe peut etre)
    Merci.
    Bon, je crois que vous me compreniez toujours mal puisque les messsages de types INFO , WARN ... ne m'intersse pas .
    Je ne m'intersse qu'au type DEBUG.
    Donc je ne veux pas filtrer par catégories ( Si c'était le cas j'utiliserai plusieurs appenders comme vous l'avez déja dit ) mais moi je cherche à filtre sur les chaines de caractères. (Ne faire logger que des messages DEBUG particuliers et non pas tous les messages DEBUG)
    Merci encore.

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 79
    Par défaut
    Citation Envoyé par devfd0 Voir le message
    Merci.
    Bon, je crois que vous me compreniez toujours mal puisque les messsages de types INFO , WARN ... ne m'intersse pas .
    Je ne m'intersse qu'au type DEBUG.
    Donc je ne veux pas filtrer par catégories ( Si c'était le cas j'utiliserai plusieurs appenders comme vous l'avez déja dit ) mais moi je cherche à filtre sur les chaines de caractères. (Ne faire logger que des messages DEBUG particuliers et non pas tous les messages DEBUG)
    Merci encore.
    Je pense vous avoir compris mais ce n'est pas grave. Mes solutions ne semblent pas vous satisfaire mais j'ai compris votre problématique.
    Autrement vous pouvez encore surdéfinir la méthode debug de la classe Logger en y mettant votre filtre puis en appelant la méthode mère du style parent.debug(Object o)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Logger extends org.apache.log4j.Logger{
     
    	public void debug(Object arg){
                      if(!arg.toString().equals("machaine")){
                          super.debug(arg);
                      }
    	}
    }

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

Discussions similaires

  1. [RegEx] supprimer des mots dans une phrase
    Par anarchoi dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2007, 09h44
  2. [SQL / ORACLE] Supprimer espace dans une phrase
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 10
    Dernier message: 31/01/2006, 16h29
  3. [RegEx] supprimer les chaine à trois caracteres d'une phrase
    Par abj8077 dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2004, 14h48
  4. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

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