tutorial - Cómo eliminar el patrón de fecha de los registros tomcat
para que se usa elastic search (8)
El registro de Tomcat se rige por los elementos de configuración <Valve>
, generalmente en server.xml
o context.xml
. Estos le permiten controlar cosas como el sufijo de datos.
here , que asumo es lo que quiere decir con localhost.2010-12-22.log
. No estoy seguro acerca de catalina.out
, pero eso debe usar un mecanismo similar.
Por defecto, Tomcat agrega la fecha a los archivos de registro, por ejemplo, localhost.2010-12-22.log y lo mismo con el registro catalina. No quiero la fecha en el archivo de registro y parece que no puedo encontrar la forma de eliminarlo. La documentación de registro no dice nada sobre el patrón de fecha. Cualquier idea es muy apreciada.
Esto debería ser fácil en Tomcat 7: ver esta documentación
atributo renameOnRotate
De forma predeterminada para un registro rotativo, el nombre del archivo de registro de acceso activo contendrá la marca de tiempo actual en fileDateFormat. Durante la rotación, el archivo se cierra y se crea y utiliza un nuevo archivo con la siguiente marca de tiempo en el nombre. Cuando se establece renameOnRotate en verdadero, la marca de tiempo ya no forma parte del nombre del archivo de registro activo. Solo durante la rotación, el archivo se cierra y luego se le cambia el nombre para incluir la marca de tiempo. Esto es similar al comportamiento de la mayoría de los marcos de registro cuando se realiza una rotación basada en el tiempo. Valor por defecto: falso
La documentación a la que se vincula es para el registro dentro de su aplicación, no para el registro del servidor Tomcat. Como se mencionó en otra respuesta, la documentación apropiada está here . En un sistema Ubuntu Server, querrá cambiar la configuración en /etc/tomcat7/server.xml. Este archivo puede estar en otra ubicación en su sistema.
Una configuración similar a esto evitará que Tomcat ponga la fecha en el nombre del archivo de registro, pero también evitará que Tomcat gire su registro de acceso, lo que probablemente sea una mala idea, a menos que configure una configuración logrotate adecuada para el servidor.
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="http_access" suffix="log" pattern="common"
rotateable="false" resolveHosts="false" />
La propiedad mágica para el registro de JULI predeterminado en Tomcat es "rotativa". Por lo general, hay dos lugares donde el registro se define en las instalaciones predeterminadas: logging.properties y las configuraciones del servidor (server.xml).
Para el logging.properties debe usar esto: 1catalina.org.apache.juli.FileHandler.rotatable = false
Para la configuración del servidor se vería así:
<Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "prefix =" access_log "suffix =". Txt "rotatable =" false "pattern ="% h% l% u% t "% r"% s% b "/>
Por favor, busque aquí para más detalles:
http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve
La respuesta más adecuada a su pregunta directa es el booleano "renameOnRotate". El supuesto es que desea un registro diario, pero no desea la marca de tiempo. Esto nombrará el archivo basado en prefijo / sufijo, y agregará la marca de tiempo al archivo de registro después de que se haya girado el archivo de registro:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access" suffix=".log" renameOnRotate="true"
pattern="%a %A %h %H %l %m %t %u %U "%r" %s %b " resolveHosts="false" />
Las respuestas citando "renameOnRotate" son incorrectas. Esto solo se aplica al registro de acceso, no al registro "principal" (que es lo que quiere la pregunta, ya que se citó el registro "localhost".
Si necesita la rotación de registros y no tener las marcas de tiempo (lo que generalmente es el caso), la mala noticia es que no es posible salir de la caja con Tomcat :(
La mejor solución en ese caso es configurarlo para que use log4j globalmente, que es más flexible y le permitirá configurarlo de esa manera.
Ninguna de las otras respuestas me ayudó mucho, aunque la de Thomas fue la más cercana. La documentación que encontré fue:
- http://tomcat.apache.org/tomcat-6.0-doc/logging.html
- http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/juli/FileHandler.html
Así que agregué lo siguiente al archivo logging.properties
de Tomcat. Esto elimina la fecha de los registros de localhost y los otros tres tipos de registro que Tomcat fecha de forma predeterminada:
1catalina.org.apache.juli.FileHandler.rotatable = false
2localhost.org.apache.juli.FileHandler.rotatable = false
3manager.org.apache.juli.FileHandler.rotatable = false
4host-manager.org.apache.juli.FileHandler.rotatable = false
#
# default is true, which causes a date to be added to the filename
1catalina.org.apache.juli.FileHandler.suffix = log
2localhost.org.apache.juli.FileHandler.suffix = log
3manager.org.apache.juli.FileHandler.suffix = log
4host-manager.org.apache.juli.FileHandler.suffix = log
#
# default is .log, but without date, the extra dot is not needed
La respuesta de de_simakov fue correcta en su mayor parte, pero tenía un error tipográfico de una letra. Encuentre una configuración similar a esta en conf / server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="http_access" suffix="log" pattern="common"
rotatable="false" resolveHosts="false" />
Observe el atributo rotatable = "false" .