java - logs - Tomcat Logging mientras se ejecuta como un servicio de Windows
tomcat catalina log (4)
Tengo una aplicación web ejecutándose bajo Tomcat.
El registro de varias características se implementa utilizando java.util.logging.
Al ejecutar tomcat mediante startup.bat, se crean los archivos de registro y se registra el registro como se esperaba.
Cuando se ejecuta como un servicio de Windows utilizando el mismo archivo de guerra, la salida del registro está prácticamente ausente. Hay algo de salida de registro (apenas) en stdout.log y stderr.log, pero no es lo que se espera.
¿Le suena familiar a alguien? ¿Qué pasos tomaste para corregirlo?
Saludos
Asegúrese de que el entorno de Tomcat sea el mismo en ambos casos. Verifique las rutas y las configuraciones en el editor de servicios de Tomcat. No utilice el diálogo de propiedades estándar de Windows para servicios, pero inicie tomcat.exe con //ES//name
donde name
es el nombre del servicio.
Como resultado, este es un problema de configuración.
Cuando se inicia desde startup.bat tomcat hará referencia a logging.properties en el directorio conf.
Cuando se inicia como un servicio, entra en juego jdk / jre / lib logging.properties.
Cuando se ejecuta como un servicio de Windows, toda la salida de la consola se redirige a stdout.log en el directorio de registros de tomcat.
Los intentos de capturar el registro en archivos personalizados con archivos logging.properties personalizados hasta ahora han fallado.
Los archivos de registro stdout y stderr deberían haberse creado en el directorio de registros de su instalación de Tomcat.
Para configurar el registro, use la aplicación "Configurar Tomcat". Puede establecer el nivel de error y la ubicación de los archivos de registro allí.
Cuando tomcat se inicia como un servicio, su configuración de registro predeterminada anula cualquier configuración de registro específica de la aplicación. Como Aaron sugirió que la mejor forma de establecer la configuración es usando tomcatw // ES // tomcat_service_name, por ejemplo tomcat_service_name podría ser Tomcat5 dependiendo de sus preferencias de instalación (también, use tomcatw, no tomcat - ambos ejecutables se pueden encontrar en C: / Archivos de programa / Apache Software Foundation / Tomcat 5.0 / bin). Esta publicación explica cómo puede asegurarse de usar el nombre del servicio correcto (si no hay valores en el cuadro de diálogo, probablemente el nombre sea incorrecto).
Publicaba una imagen pero no tengo suficientes representantes. En la pestaña Java VM, ingrese la configuración en Opciones de Java, p. Ej. -Dlog4j.configuration = service.log4j.properties
El archivo que contiene su configuración de registro se puede colocar en el directorio de clases del servidor tomcat, por ejemplo, C: / Archivos de programa / Apache Software Foundation / Tomcat 5.0 / server / classes.
Hay varios lugares donde puede colocar el archivo de configuración de registro. Inicialmente intenté especificar una ruta completa para el archivo de configuración de registro pero log4j parece verificar solo ciertas rutas. Como dice esta publicación , coloque -Dlog4j.debug como la primera línea en Opciones de Java y puede depurar qué está haciendo log4j. El directorio de clases del servidor se enumera como una posible ruta de búsqueda.
Al crear su archivo log4j.properties, asígnele un nombre diferente a log4j.properties, por ejemplo, service.log4j.properties. Nombrarlo log4j.properties corre el riesgo de que se encuentre un archivo log4j.properties específico de la aplicación, lo que anularía su configuración pero que el servicio tomcat posteriormente ignoraría.