logo       

Re: "Best practice" pour le log: msg#00029

java.french.general

Subject: Re: "Best practice" pour le log

> Le dimanche 10 Juillet 2005 14:04, Jean-Marc Desprez a écrit :
>>Bonjour à tous,
>>Je me pose quelques questions sur la meilleure façon d'utiliser un
>>système de log.
> Je te réponds par rapport à log4j, bien que j'ai l'impression que tu utilises
> Common Logging.
En fait j'ai trouvé plus d'info sur le site de common logging mais pour
l'instant j'ai plutôt utilisé Log4j (enfin commencé à utiliser).

>>Premièrement, faut-il déclarer le Logger en static ?
> Avec log4j cela semble complètement inutile. Le paquetage le fait déjà.
"le paquetage le fait déjà" je ne suis pas sûr de bien suivre désolé tu
peux m'en dire plus ?

>>Deuxièmement, une mauvaise utilisation peut-elle engendrer une fuite de
>>mémoire ?
> Avec log4j, impossible, puisque le logger n'enregistre que son nom.
Bonne nouvelle ;)

>>Une autre solution pourrait utiliser une fonction avec un nombre de
>>paramètres variables. Ce qui donnerai simplement :
>>logger.debug("texte %1 suite %2 fin", valeur1, valeur2);
>>Je ne sais pas si ce genre de solution existe déjà.
> Moi je me suis construit un petit paquetage qui me permet d'écrire :
> logger.say("valeur 1", valeur1).say("valeur 2", valeur2).debug();
Pourrais-tu me montrer le code ? Si c'est privée je comprend,
j'essaierai d'en faire un "a ma sauce".

> De ma pratique sur les loggers, j'observe que le niveau "debug" est en passe
> de devenir obsolète : je l'utilise de moins en moins... je ne sais s'il faut
> y voir une amélioration générale de ma façon de programmer, ou une marque de
> fénéantise. En tous les cas, cela résoud de fait le problème du
> "isDebugEnabled()".
>
> Par contre ce qui est vraiment utile c'est la trace des exceptions. Pour
> elles
> je mets un double message : pour l'utilisateur, et pour le fichier de logs.
> Celui du fichier de log, c'est en général le stack trace, avec la série des
> exceptions cause, et la valeur des paramètres.
>
> Ces traces me permettent de comprendre ce qui se passe en cas de pépin dans
> quasi tous les cas ; j'utilise surtout les niveaux "warning" et "error" ;
> jusqu'à présent les cas qui sont passés au travers relevaient du bug JVM.
>
> Grâce au système des "initCause" des exceptions, les warnings se retrouvent
> juste au niveau le plus élevé du stack trace, ce qui fait qu'il y a de moins
> en moins d'appels aux logs. De plus, ma tendance actuelle est d'améliorer mon
> petit paquetage perso pour l'adapter à ce qui m'est utile.
>
> La situation serait toute différente, je pense, dans un contexte de sécurité
> où il faut tracer le fonctionnement. Mais à mon avis, dans ce genre de cas,
> la meilleure approche serait d'utiliser les outils de manipulation du byte
> code style ASM (http://asm.objectweb.org/) plutôt que de mettre des
> "isDebugEnabled" partout. Mais là je parle de choses que j'ai jamais faites.
*Merci beaucoup* pour tous ces conseils, je vais relire tout ça à tête
reposée.



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise