Estoy usando ColorConsoleAppender, me preocupa si alguna vez colgará mi aplicación. alguien tiene experiencia¿Alguna vez log4net bloqueará la aplicación?
Respuesta
Desde el sitio log4net: http://logging.apache.org/log4net/release/faq.html
Nº log4net no es fiable. Es un sistema de registro de mejor esfuerzo y detención de fallas.
Por fail-stop, nos referimos a que log4net no arrojará excepciones inesperadas en el tiempo de ejecución, lo que podría causar el bloqueo de la aplicación. Si por alguna razón, log4net arroja una excepción no detectada (a excepción de ArgumentException y ArgumentNullException que pueden arrojarse), envíe un correo electrónico a la lista de correo [email protected] Las excepciones no detectadas se manejan como errores graves que requieren atención inmediata.
Personalmente lo uso todo el tiempo y nunca he tenido un problema.
Me preocupa que al menos ColorConsoleAppender cuelgue la aplicación. De hecho, me encuentro con uno – user496949
@ user496949: me encontré con el mismo problema. Estaba usando un proceso invisible y anexado con ColoredConsoleAppender. –
En realidad resolví el problema: el proceso de llamada no se leía desde la secuencia de salida y, finalmente, la transmisión estaba "completa". –
@ ralf.w. ya muestra los síntomas completos. Puedo reformularlo ya que recientemente también he tenido el mismo problema.
- Desarrolle una aplicación de consola que use ColorConsoleAppender (o ConsoleAppender) para imprimir registros.
- Desarrolle otra aplicación (WinForms en mi caso) para ejecutar esa consola (usando Process.Start). UseShellExecute = false para redirigir la salida estándar y el error. CreateNoWindow = true WindowStyle = Oculto.
Luego, en unas pocas máquinas (o sesiones de escritorio remotas), log4net bloqueará la aplicación de la consola, y en los volcados se puede ver que extrañamente espera una escritura en la secuencia para finalizar.
Difícil de reproducir en una máquina normal (como la mía), tan difícil de seguir investigando aunque log4net es de código abierto.
La solución alternativa puede ser tan simple como mostrar la aplicación de la consola como minimizada (en lugar de oculta), y/o cambiar otras configuraciones de ProcessStartInfo.
Estábamos viendo algo similar. Determinamos que log4net (y/o Windows) está almacenando en buffer hasta 4 KB de salida a stdout/stderr. Después de que se llene ese búfer, las llamadas de registro adicionales se bloquearán. Entonces, si el Proceso A inicia el Proceso B y los registros del Proceso B en la consola, y el Proceso A no lee la salida estándar del proceso iniciado (Proceso B), el Proceso B se bloqueará después de que se llene. El cambio de redirección soluciona el problema. Tener el proceso A de lectura estándar también solucionaría el problema. – Jimothy
@Jimothy me resolvió el problema de manera efectiva;) Thx. – nozzleman
- 1. ¿Alguna sugerencia para la configuración de Log4Net?
- 2. ¿Alguna vez se destruye el contexto de la aplicación Android?
- 3. Log4Net en el objeto de la aplicación?
- 4. Log4net - Crear nuevo archivo de registro cada vez que se inicia la aplicación
- 5. Configurar log4net RollingFileAppender en el código que se ejecuta una vez por inicio de la aplicación
- 6. log4net Configuración para la aplicación de consola
- 7. Configurar Log4net en aplicación web
- 8. Log4Net o Bloque de aplicación de registro
- 9. Registrar todas las excepciones en la aplicación .NET usando log4net
- 10. ¿Es necesario > alguna vez?
- 11. ¿Se desborda BigInteger alguna vez?
- 12. ¿Alguna vez ha usado ngen.exe?
- 13. ¿Alguna vez ha utilizado efectivamente lexer/analizador en la aplicación real?
- 14. ¿Alguna vez alguien usa el Control Ribbon?
- 15. ¿La recolección de basura alguna vez afecta la pila?
- 16. Java serialización, ObjectInputStream.readObject(), compruebe si bloqueará
- 17. Can String.Split() alguna vez devuelve nulo? (.net)
- 18. ¿JS-regex alguna vez se verá?
- 19. ¿Los ensamblados .NET alguna vez cambian?
- 20. ¿Cuándo, si alguna vez, debemos usar const?
- 21. ¿Alguna vez OCaml ha copiado bloques personalizados?
- 22. ¿Alguna vez ha bloqueado el compilador?
- 23. ¿Podría random.randint (1,10) alguna vez devolver 11?
- 24. ¿Cuándo se configura Log4Net?
- 25. ¿Alguna vez ha diseñado software imaginando la solución ideal?
- 26. ¿Alguna vez recibió una respuesta inesperada durante la entrevista?
- 27. Fuzzyfinder: ¿alguna forma de abrir múltiples archivos a la vez?
- 28. Puede Object.GetType() alguna vez devolver nulo?
- 29. ¿Es cero alguna vez un identificador válido?
- 30. Omitir listas: ¿alguna vez las usaste?
No solo ColouredConsoleAppender. Incluso ConsoleAppender se cuelga de la misma manera. –