Tomcat (autres infos)
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Sujet | Directives Host / Valve, journalisation |
| Voir aussi | Tomcat · Tomcat (divers) |
Informations complémentaires à la procédure principale Tomcat : directives Host et Valve, et journalisation fine.
Directive Host
Correspond à un vhost Apache. En général, elle n'est pas à modifier.
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
Directive Valve
Une Valve est un composant Java inséré dans le traitement des requêtes (un filtre). Elle s'applique sur <Engine>, <Host> ou <Context>.
org.apache.catalina.valves.AccessLogValve journalise les accès org.apache.catalina.valves.JDBCAccessLogValve journalise les accès en base org.apache.catalina.valves.RemoteAddrValve restriction d'accès par IP org.apache.catalina.valves.RemoteHostValve restriction par nom d'hôte org.apache.catalina.valves.RequestDumperValve journalise le contenu des requêtes org.apache.catalina.authenticator.SingleSignOn SSO entre applications org.apache.catalina.valves.FastCommonAccessLogValve variante performante d'AccessLogValve
Exemple :
<Host name="www.exemple.fr" appBase="MyApps"
unpackWARs="false" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/TestAppli" path="/" reloadable="false" swallowOutput="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="test_acces_log" suffix=".txt"
rotatable="true" resolveHosts="false"
pattern="%a - %U %t %{USER-AGENT}i "%r" %s %b" />
</Context>
</Host>
Journalisation fine (java.util.logging)
Fichier conf/logging.properties. Un journal se définit en deux parties : le handler (attributs) et le logger (fichier et niveau). Le logger respecte la hiérarchie de l'élément à journaliser :
org.apache.catalina.core.ContainerBase.[Engine].[Host].[/Context]
Exemple :
# Handler
handlers = 6host-exemple-fr.org.apache.juli.FileHandler
6host-exemple-fr.org.apache.juli.FileHandler.level = ALL
6host-exemple-fr.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
6host-exemple-fr.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
6host-exemple-fr.org.apache.juli.FileHandler.prefix = host-exemple-fr.
# Logger sur le host
org.apache.catalina.core.ContainerBase.[Catalina].[www.exemple.fr].[/].level = ALL
org.apache.catalina.core.ContainerBase.[Catalina].[www.exemple.fr].[/].handlers = 6host-exemple-fr.org.apache.juli.FileHandler
level : niveau (SEVERE, CONFIG, INFO, WARNING, FINE, FINEST, ALL) directory : dossier de stockage formatter : classe de formatage du contenu prefix : préfixe du fichier handlers : lie le logger à un handler
Pour journaliser le détail de toutes les requêtes, on utilise la valve RequestDumperValve :
<Valve className="org.apache.catalina.valves.RequestDumperValve" />