¿Cómo creo un registro con nombre en $ TOMCAT_HOME/logs para mi servlet?

Actualmente estoy ingresando a través de los métodos más simples dentro de mi servlet usando Tomcat. Uso el ServletConfig.getServletContext (). Log para registrar la actividad. Esto escribe en el localhost.YYYY-MM-DD.log en $ TOMCAT_HOME/logs.

No quiero alejarme de la simplicidad de este mecanismo de registro a menos que sea absolutamente necesario. Pero me gustaría nombrar mi archivo de registro. En lugar de "localhost" .YYYY-MM-DD.log, ¿hay alguna forma de hacerlo escribir en "myAppName" .YYYY-MM-DD.log? Sé que podría crear mi propio mecanismo, pero de nuevo, busco la simplicidad aquí.

Espero mantenerme alejado de un marco completo como Log4j.

1
Puedo hacer lo que quiero (ver respuesta a continuación) sin un marco completo y todo lo que conlleva, el jar, la curva de aprendizaje, etc. A veces, menos.
agregado el autor dacracot, fuente
¿Qué estaría mal con un framework como Log4j? Es estándar y tiene una interfaz bastante simple.
agregado el autor Hans Doggen, fuente

2 Respuestas

Entonces, hay una forma a través de $ TOMCAT_HOME/conf/logging.properties sin tocar mi código de servlet ...

antes de...

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

después...

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler, 6localhost.org.apache.juli.FileHandler

Luego añade...

6localhost.org.apache.juli.FileHandler.level = FINE
6localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
6localhost.org.apache.juli.FileHandler.prefix = myAppName.

y añadir...

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myAppName].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myAppName].handlers = 6localhost.org.apache.juli.FileHandler

y rebotar tomcat. Esto creó un $ TOMCAT_HOME/logs/myAppName.2008-10-14.log con mis simples mensajes de ServletConfig.getServletContext (). Log() solamente.

0
agregado

Para Tomcat 6.x, puede cambiar la configuración de registro en conf/logging.properties.

Pero prefiero una configuración separada con Log4j ...

0
agregado
¿Hay alguna manera de hacer que las propiedades de registro sean específicas del contexto de mi servlet? Además, preferiría la simplicidad, y Log4j no me parece simple (no necesariamente difícil, pero sobrecargada de opciones).
agregado el autor dacracot, fuente
log4j es muy simple de usar. Simplemente tome los 5 minutos necesarios para configurarlo por primera vez, use el mismo archivo de configuración log4j.properties o log4j.xml, y estará muy contento con los resultados (¡y se preguntará por qué no lo utilizó antes! )
agregado el autor matt b, fuente