¿Hay alguna manera de escribir eventos de registro de log4j en un archivo de registro al que también escriben otras aplicaciones? Las otras aplicaciones podrían ser aplicaciones que no sean de Java. ¿Cuáles son los inconvenientes? ¿Problemas de bloqueo? Formateo?Log4j Inicio de sesión en un archivo de registro compartido
Respuesta
Log4j tiene un SocketAppender, que enviará eventos a un servicio, que puede implementar usted mismo o utilizar la implementación simple incluida con Log4j.
También es compatible con syslogd y el registro de eventos de Windows, que puede ser útil al tratar de unificar su salida de registro con eventos de aplicaciones que no son de Java.
Si el rendimiento es un problema en absoluto, desea un solo servicio para escribir el archivo de registro, en lugar de tratar de coordinar una estrategia de bloqueo consistente entre diversas aplicaciones de registro.
Lo mejor que puede hacer es dejar que cada aplicación se registre por separado, luego coloque un trabajo programado para 'comprimir' los archivos juntos en función del tiempo. Si necesita acceso realmente actualizado al registro completo, puede ejecutarlo cada hora.
Log4j es lo suficientemente flexible como para que pueda crear entradas de registro en un formato que sea compatible con los registros que ya están en el archivo. Solo mire en los apéndices cómo formatear campos de datos específicos.
Su principal preocupación será con el bloqueo, muy probablemente por otras aplicaciones. Asegúrese de que todas las aplicaciones no tengan un bloqueo exclusivo en el archivo y que esté bien.
que tienen una experiencia con los dos enfoques siguientes:
- uso de bases de datos para iniciar la sesión en lugar de archivo de texto plano - que puede ser prohibitivo debido a problemas de rendimiento, por el contrario, es muy fácil de analizar los registros , crea informes. La base de datos se ocupa de todos los problemas de simultaneidad.
- El otro enfoque implica el uso del servidor JBoss, que se puede usar para leer información de registro de otras fuentes. JBoss se puede ejecutar en la configuración mínima y gracias a eso es realmente liviano (2 segundos de tiempo de inicio). Los detalles se pueden encontrar aquí http://docs.jboss.org/process-guide/en/html/logging.html (Logging to a Seperate Server). Log4J se ocupa de todos los problemas de bloqueo/concurrencia.
Si no tiene previsto utilizar JBoss, puede utilizar el segundo enfoque como base de su propia solución de registro.
No creo que los apiladores log4j predeterminados realicen ningún bloqueo o sincronización de archivos. Sin dicho bloqueo, es probable que pierda los mensajes de registro o los reciba destruidos.
No estoy seguro de lo fácil que es hacer el bloqueo de archivos en Java, pero para que esto funcione directamente, creo que necesitaría subclase el Appender apropiado y anular el método de registro, envolviéndolo con un código de sincronización que bloquee y desbloquea el archivo. Esto podría tener implicaciones de rendimiento, dependiendo de la carga de su sistema.
Log4perl tiene un Appender de sincronización, Log :: Log4perl :: Appender :: Synchronized, que ajusta un Appender y lo logra, y también parece proporcionar un indicador en su Log :: Log4perl :: Appender :: File que previene líneas intercaladas. Puede ver lo que hacen para ver si podría ser replicable en Java.
- 1. Analizar un archivo de registro de log4j
- 2. Encontrar archivo de registro Log4J
- 3. log4j nombres de archivo de registro?
- 4. ¿Cómo sobrescribo un archivo de registro en log4j?
- 5. log4j detuvo el registro en el archivo,
- 6. log4j archivo de registro en el directorio de inicio del usuario
- 7. inicio de sesión automático después de un registro exitoso
- 8. VS2010: salida de inicio de sesión de creación mínima e inicio de sesión detallado archivo de registro
- 9. Inicio de sesión en un archivo de registro individual para cada subproceso individual
- 10. Redirigir la página de inicio de sesión/registro de Wordpress a una página de inicio de sesión/registro personalizada
- 11. Inicio de sesión en el directorio temporal de manera multiplataforma
- 12. Registro de Java vs Log4J
- 13. ¿Cómo crear un Servicio de inicio de sesión compartido en varios dominios?
- 14. Log4J imprime la línea vacía en el archivo de registro
- 15. Inicio de sesión en J2ME
- 16. Devise. Registro e inicio de sesión en la misma página
- 17. log4j in grails: cómo iniciar sesión en el archivo?
- 18. java log4j elegir qué archivo registrar en
- 19. Log4j | La actualización del nivel de registro para el archivo
- 20. Almacenando el registro en el archivo .log utilizando SLF4j/log4j
- 21. log4j y weblogic: mensajes de registro duplicados
- 22. Múltiples archivos de registro con log4j
- 23. Configuración de un nombre de archivo de registro para incluir la fecha actual en Log4J
- 24. log4j: registro específico del paquete
- 25. Inicio de sesión en MVC (Zend Framework)
- 26. ¿Cómo registro una sesión R en un archivo?
- 27. Mantener registro del tiempo de inicio de sesión y la duración de la sesión - Java - Spring Security
- 28. Uso de MDC en log4j para asignar un nombre dinámico al archivo de registro
- 29. configure log4j para iniciar sesión en el archivo personalizado durante el tiempo de ejecución
- 30. ¿Cómo diferencia las sesiones de log4j en un archivo de registro de las copias de la misma aplicación web?