Log4j capter une partie des logs
Voila j'ai fait un classe qui converti une collection d'objet en une autre avec tout un tas de règles vraiment spéciales et surtout un certain nombre de cas d'erreur qui n'est pas négligeable !
Ce que je voulais c'est récupérer mes logs afin de les envoyer par mail si besoin s'en fait sentir ! Mais pas tout mes logs puisqu'il eut fallut chercher mais juste la partie intéréssante ...
Ce que j'ai fait c'est que j'ai simplement redirigé l'espace d'un instant les logs vers un fichier ! Enfin j'ai simplement ajouté un appender ! Voici comment :
log.debug("-----------"); FileAppender tmpLog = new FileAppender(new PatternLayout("%d{HH:mm:ss} %m%n"), "testRedirectLog.log", false); tmpLog.setThreshold(Level.WARN); Logger.getRootLogger().addAppender(tmpLog); Collection results = MonConverteur.convert(maCollectionDorigine); Logger.getRootLogger().removeAppender(tmpLog); log.debug("-----------");
Voila ce qui fait que j'ai des logs formatés comme je le veut et contenant la partie que je veux ! Si on ne veut pas le mettre dans un fichier on peut voir du coté de WriterAppender dont hérite FileAppender pour directement diriger vers un StringWriter par exemple !!!
Voila petites astuce bien sympa !
