Configurar Logs en Tomcat sin fecha y con Logrotate

21 03 2012

Para poder utilizar logrotate con Tomcat, eliminando la fecha que añade a cada archivo y quitando la rotación automática debemos hacer lo siguiente:

Sustituir en conf/server.xml lo siguiente:

<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”
prefix=”localhost_access_log.” suffix=”.txt”
pattern=”%h %l %u %t &quot;%r&quot; %s %b” />

Por ésto:

<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”
prefix=”localhost_access” suffix=”.log” pattern=”combined”
resolveHosts=”false” rotatable=”false” />

 

Ahora, en conf/logging.properties desactivamos el log de la consola para evitar logs duplicados en el catalina.out y catalina.log:

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

.handlers = 1catalina.org.apache.juli.FileHandler
#.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

Y añadimos las siguientes líneas debajo de las propiedades de cada handler, desactivando con ello la rotación automática y la fecha añadida en el nombre de cada archivo:

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina
1catalina.org.apache.juli.FileHandler.rotatable = false

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost
2localhost.org.apache.juli.FileHandler.rotatable = false

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager
3manager.org.apache.juli.FileHandler.rotatable = false

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager
4host-manager.org.apache.juli.FileHandler.rotatable = false

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Los valores levle, en este caso FINE, estaría bien cambiarlos, si es un entorno de producción, a otro valor, quizá WARNING, no obstante, comprobar los tipos soportados aquí:

 

  • SEVERE (highest value)
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST (lowest value)

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/logging/Level.html

Reiniciar tomcat de la manera habitual y listo, ya sólo logeará en archivos sin fecha y no realizará las rotaciones automáticas.

Queda habilitar el logrotate, como si sería un servicio habitual, para ello creamos el siguiente archivo: “/etc/logrotate.d/tomcat”

/dit/to/tomcat/logs/*.out /dir/to/tomcat/logs/*.log {
     rotate 7
     daily
     copytruncate
     compress
     notifempty
     missingok
}

 

Y listo, ya tenemos configurada la rotación automática en tomcat.

Advertisements

Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: