|
Re: "Best practice" pour le log: msg#00028java.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. > Premièrement, faut-il déclarer le Logger en static ? Avec log4j cela semble complètement inutile. Le paquetage le fait déjà. > > Deuxièmement, une mauvaise utilisation peut-elle engendrer une fuite de > mémoire ? Avec log4j, impossible, puisque le logger n'enregistre que son nom. > > 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(); > > Merci pour vos réponses/conseils 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. Cordialement. -- SARL diaam informatique - 04 77 25 43 28 Ingenierie, développements de systèmes d'information http://www.diaam-informatique.com
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Hacking SSL, Herve AGNOUX |
|---|---|
| Next by Date: | Re: "Best practice" pour le log, Jean-Marc Desprez |
| Previous by Thread: | "Best practice" pour le log, Jean-Marc Desprez |
| Next by Thread: | Re: "Best practice" pour le log, Jean-Marc Desprez |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |