Enregistrement de servlet Tomcat
Je suis nouveau sur des conteneurs de Servlet et ont créé une application web à l'aide de Tomcat 6.0.26. J'ai des "TODO: journal" dispersés tout au long de mon code. Je vois, il existe:
myServlet.getServletContext().log()
qui semble écrire dans un fichier avec le préfixe 'localhost' dans le Tomcat '/logs' annuaire. Je n'ai pas besoin de journalisation avancée de la capacité, mais j'aimerais que la date, l'heure, le message et la trace de pile d'au minimum. En outre, j'ai créé des classes utilisées par mes différentes servlets qui ont besoin de fonctionnalités de journalisation. Ai-je besoin d'injecter un SevletContext dans ces classes, donc ils peuvent se connecter?
Il semble que log4j de Apache est un populaire la journalisation des paquets, mais je ne sais pas si ça vaut la peine de mettre ça en place.
Quelle serait la meilleure façon de journalisation pour mes besoins?
source d'informationauteur Wilson | 2010-07-01
Vous devez vous connecter pour publier un commentaire.
En plus de tous les trucs BalusC a mentionné ci-dessus, dans votre code java (servlets/haricots/whatever) il suffit d'importer et d'initialiser l'Enregistreur
À tout point de journalisation, vous pouvez vous connecter à différents niveaux, comme
Ils apparaissent dans les journaux selon que vous avez défini de DÉBOGAGE ou de l'INFO dans les log4j.propriétés
Prendre un coup d'oeil sur les exemples sur http://www.java2s.com/Code/Java/Language-Basics/Examplelog4jConfigurationFile.htm et tous les exemples dans le même article
Vous ne voulez pas d'attacher toutes vos affaires et code d'accès aux données avec le
ServletContext
(j'ai bien sûr supposer que votre entreprise de base de données et le code n'est pas serré, couplé à l'intérieur d'une classe de servlet, mais juste de vivre dans leur propre couche de classes, sans aucunejavax.servlet
références). Donc je ne recommande pas d'utiliserServletContext#log()
. Il est aussi très rarement utilisé dans le monde réel.Vous avez raison, log4j est populaire, même si il a été succédé par logback. La configuration de log4j n'a pas besoin d'être que pénible. Je suggère de commencer avec un fichier de propriétés qui est moins difficile à comprendre qu'un fichier XML. Vous pouvez toujours mettre à niveau vers un fichier XML une fois que vous comprenez ce qui se passe dans la configuration log4j.
Créer un fichier nommé
log4j.properties
le mettre quelque part dans la racine du classpath, par exemple/WEB-INF/classes
(ou si vous utilisez un IDE, la racine de lasrc
dossier, il finira par atterrir au bon endroit). Vous pouvez aussi le garder à l'extérieur de la webapp et ajouter son chemin vers le serveur d'exécution du chemin de classe en spécifiant son chemin dansshared.loader
propriété deTomcat/conf/catalina.properties
. Enfin le remplir comme suit:Ce coup d'envoi en exemple par les journaux par défaut à un niveau de
TRACE
. Vous pouvez le modifier àDEBUG
ouINFO
comme suit:Cet exemple utilise par défaut la console appender. Il va se connecter sur la sortie standard tel qu'il est configuré par Tomcat qui, par défaut, des terres dans le
/logs/localhost.yyyy-MM-dd.log
fichier.Vous pouvez toutefois modifier pour utiliser le fichier appender comme suit:
La
ConversionPattern
paramètres peuvent être trouvés en détail dans laPatternLayout
javadoc.Espère que cette aide pour vous aider à démarrer.