2011-11-10 18 views
6

Estoy realmente harto de no ser capaz de resolver el problema de rotación de registro de tomcat en uno de nuestros servidores de Windows después de pasar horas en menos tiempo y después de probar varias soluciones.Cómo rotar tomcat logs en Windows? ¿Cuál es el mejor método?

Medio Ambiente: 1.6x Java, Tomcat 6 (que se ejecuta como un servicio), log4j 1.2, Server 2003 de 32 bits

métodos probados hasta ahora.

1) cronolog no funcionó, no se crearon archivos después de configurarlo.

2) Gestionado para configurar log4j con DailyRollingFile appender globalmente para tomcat, los archivos de registro se crean sin extensión y no se están girando.

3) Intenté DatedFileAppender también, pero no tuve mucho éxito.

4) log4jna Probado basado appender Windows Event Log de log4j, no consiguió el éxito

Para sugerir un método fácil para terminar esta tarea.

Respuesta

4

Apache Tomcat proporciona el directorio de configuración conf, que contiene el archivo server.xml. En la parte inferior de este archivo, una línea que incluye la válvula de ajustes, llamada AccessLogValve debe ser sin comentarios y cambiada.

Los parámetros y patrones predeterminados de la válvula pueden ser fácilmente modificados a través de un editor. Su configuración para el archivo de registro de acceso, por ejemplo, puede tener este aspecto:

<Valve 
className="org.apache.catalina.valves.AccessLogValve." 
directory="logs" 
prefix="mysite." 
suffix=".log" 
pattern='%a %A %b %B %h %l %m %p %q %u %t "%r" %s %U %D %S' 
resolveHosts="false" 
rotatable="true" 
fileDateFormat="yyyy-MM-dd" 
/> 

Esta frase es del Tomcat reference:.

"El parámetro fileDateFormat permite un formato de fecha personalizada en el nombre del archivo de registro de acceso La fecha el formato también decide con qué frecuencia se gira el archivo. Si desea rotar cada hora, establezca este valor en: aaaa-MM-dd.HH "

+0

Gracias por tomarse su tiempo para escribirme una respuesta tan detallada. Estás abordando el problema desde un ángulo totalmente diferente. No estoy seguro de si esto resolvería mi problema o no. Pero a partir de ahora he logrado configurar la rotación de registros a través de dailyrollingfile appender en log4j –

+1

Aún los registros no se están girando incluso después de configurar con éxito el apilador dailyrollingfile. Creo que log4j no puede cambiar el nombre de un archivo cuando lo utiliza Tomcat en Windows. Por favor sugiero otras opciones –

0

He estado buscando cómo rotar los registros de la válvula de acceso. De todos los datos que he reunido hasta ahora, la 'rotación' simplemente cambiaría al siguiente archivo basado en el valor fileDateFormat que establezca.

Por ej. un valor de "aaaa-MM-dd.HH" crearía un nuevo archivo cada hora. Pero parece que los archivos seguirán creciendo en número a menos que use un mecanismo externo como un trabajo cron (en Linux) para limpiarlos.

1

Finalmente he resuelto el problema después de un largo tramo. Esta vez, no he tocado la configuración de registro de Tomcat. Usé una utilidad fantástica llamada logrotatewin que es una reimplementación de logrotate en Windows. Ya estaba familiarizado con logrotate, por lo que configurar logrotatewin fue un trabajo fácil. Tuve que detener Tomcat en el prearranque y volver a ponerlo en funcionamiento para que la rotación del registro funcione, ya que tomcat bloquea el archivo de registro cuando se está ejecutando.

Cuestiones relacionadas