¿Cuál es la mejor forma y la mejor herramienta para iniciar sesión en un entorno de subprocesos múltiples, para que cada subproceso tenga su propia instancia de registrador y un archivo separado. es esto posible?Iniciar sesión en la aplicación de subprocesos múltiples en java
Respuesta
Usted puede intentar usar una costumbre Log4J appender, que tiene ID del tema como parámetro y filtra los mensajes en base a lo que se llama hilo. Créelo sobre la marcha, adjúntelo al registrador.
hay varios problemas con este enfoque, aunque:
- Demasiados appenders frenaría la tala
- appservers por lo general tienen un grupo de subprocesos. Esto significa que el mismo hilo a lo largo del tiempo tomaría parte en la ejecución de solicitudes totalmente independientes, que terminarán en el mismo archivo de registro.
Le sugiero que considere un enfoque más simple: log thread id en el mismo archivo de registro. Es rápido y simple, log4j tiene un indicador de% para hacerlo. Más tarde puede grep/dividir el archivo de registro por id. De subproceso si es necesario.
actualización:
En realidad, usted puede tener un único appender costumbre, que se abrirá archivos de registro en la demanda cuando un nuevo hilo registra un registro (el appender se ejecuta dentro de ese contexto hilo, simplemente llame a rosca. currentThread(). getName()). Pero tendrá que volver a implementar todas las tareas habituales del archivo de registro (rotación) o delegarlo en el appender estándar para cada archivo.
que tienen una aplicación multiproceso que identifica a cada hilo en el archivo de registro (dunno acerca de los archivos mutliple, en fila india me muestra concurency), la identificación de la rosca se realiza automáticamente por el marco de registro, es Log4J
Edición: Nada hay que añadir en el código, que acaba de configurar el appender en el registrador de incluir [% hilo] que identificará el hilo desde el que está registrando el mensaje actual, esto es ejemplo es de log4net:
<appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
Aquí está una lista de otros común Java logging frameworks
por supuesto que todos conocemos log4j, pero si usted dice que es posible, puede mostrarnos la implementación simple para hacerlo usando log4j. – mabuzer
En algunos casos, conocer el identificador de subprocesos es mucho menos importante que conocer el contexto de ejecución. Esto sería especialmente cierto con muchos hilos y aplicaciones más grandes. ¿Qué haces cuando la identificación del hilo cambia, pero el contexto de ejecución real es realmente el mismo (como alguien mencionado con los grupos de hilos) ?. Prefiero usar MDC (mapped diagnostic context) para rastrear el contexto de ejecución en los registros. Es mejor porque controlas el contexto. Al final, puede configurar el diseño de los registros para incluir MDC y luego filtrar fácilmente lo que sea relevante. Consulte this tool, hace un montón de cosas con MDC.
- 1. Iniciar sesión en la aplicación DropBox
- 2. Iniciar sesión en una aplicación multiproceso junto con multiprocesamiento
- 3. ¿Completamente cerrada la aplicación de subprocesos múltiples?
- 4. Iniciar sesión en hilos en una aplicación de Rails
- 5. Esperando múltiples subprocesos para completar en Java
- 6. ¿Qué debo iniciar sesión en la aplicación de producción
- 7. ¿Cómo perfilar la aplicación C++ de subprocesos múltiples en Linux?
- 8. spring + SQLite en la aplicación de subprocesos múltiples
- 9. ¿Iniciar sesión en Sinatra?
- 10. Depuración de una aplicación de subprocesos múltiples
- 11. ¿Cómo encontrar una aplicación de subprocesos múltiples?
- 12. Delphi: error de aplicación al iniciar sesión en el campo
- 13. Iniciar sesión en una aplicación web de PHP
- 14. Iniciar sesión en Amazon S3
- 15. ¿Para iniciar sesión o no iniciar sesión?
- 16. Shiro en un entorno de subprocesos múltiples
- 17. Programa de servidor de subprocesos múltiples en Java
- 18. SSO que requiere múltiples intentos para iniciar sesión
- 19. Errores de subprocesos múltiples en C#
- 20. cómo iniciar sesión en la máquina ec2?
- 21. java.util.logging para iniciar sesión en la consola
- 22. Iniciar sesión en un archivo en Android
- 23. ¿Cómo iniciar sesión en archivos separados por hilo con Log4Net?
- 24. C# Iniciar aplicación con múltiples argumentos
- 25. Java HtmlUnit - no se puede iniciar sesión en wordpress
- 26. ¿Cómo se abre la aplicación al iniciar sesión?
- 27. Iniciar sesión en el sitio web con java
- 28. Manejo de sesión en la aplicación Java EE
- 29. ¿Cómo iniciar y administrar los subprocesos de Java?
- 30. Django iniciar sesión/cerrar sesión
Ver http://stackoverflow.com/questions/8226615/how-to-use-log4j-in-multithread-using-java – Benj