|
La gestion des logs est très modulaire avec Tomcat. La configuration se fait principalement dans le fichier server.xml à travers des entrées XML <Logger>
Le fichier server.xml permet de charger des composants de façon hiérarchisés : Server -> Service -> Engine -> Context
A l'intérieur de chacune de ces balises XML vous pouvez définir un "Logger" qui se chargera de journaliser les informations en rapport avec le niveau sous lequel il est exécuté.
Si vous définissez une seule entrée "Logger" sous la balise "Engine", toutes les sorties java pour ce moteur, seront redirigées vers ce fichier.
Si laissez le "Logger" sous la balise "Engine" et que vous ajoutez une entrée "Logger" sous chaque balise "Context", vous aurez le Logger de l'Engine qui contiendra toutes les sorties java, exceptées celles qui seront journalisées dans le Logger de chaque "application" inscrites dans les balises "Context".
Les entrées "Logger" peuvent être placés sous les balises "Engine", "Host" et "Context". Si aucune entrée "Logger" n'est placé dans server.xml alors toutes les sorties java se trouveront dans catalina.out.
<strong># logs/catalina.out est généré par les scripts de lancement et d'arrêt du
# serveur Tomcat et ne dépend pas du fichier server.xml.</strong>
<strong># Ajout d'un logger au niveau de la balise "Engine" :</strong>
<Server port="8005" shutdown="SHUTDOWN" debug="0">
...
<Service name="Tomcat-Standalone">
...
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Logger
className="org.apache.catalina.logger.FileLogger"
directory="logs"
prefix="engine-standalone."
suffix=".log"
timestamp="true"
/>
...
</Engine>
...
</Service>
</Server>
<strong># Ajout d'un logger supplémentaire pour une application WEB au niveau d'une balise "Context" :</strong>
<Server port="8005" shutdown="SHUTDOWN" debug="0">
...
<Service name="Tomcat-Standalone">
...
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Logger
className="org.apache.catalina.logger.FileLogger"
directory="logs"
prefix="engine-standalone."
suffix=".log"
timestamp="true"
/>
...
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
...
<Context path="/examples" docBase="examples" debug="0" reloadable="true" crossContext="true">
<Logger
className="org.apache.catalina.logger.FileLogger"
prefix="app-examples."
suffix=".log"
timestamp="true"
/>
...
</Context>
...
</Host>
</Engine>
</Service>
</Server>
Il existe une extension particulièrement interressante pour la gestion des logs, il s'agit de LOG4J qui se présente sous la forme d'une API livré dans un fichier ".jar".
Je consacrerais une documentation entière à Log4J, car c'est un sujet très vaste.
Pour l'exemple, sachez que Log4J vous permettrait de rediriger tous vos logs de Tomcat vers Syslog
|