|
Re: "Best practice" pour le log: msg#00029java.french.general
> 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> |
|---|---|---|
| Previous by Date: | Re: "Best practice" pour le log, Herve AGNOUX |
|---|---|
| Next by Date: | Re: "Best practice" pour le log, Herve AGNOUX |
| Previous by Thread: | Re: "Best practice" pour le log, Herve AGNOUX |
| Next by Thread: | Re: "Best practice" pour le log, Herve AGNOUX |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |