¿Cuál es el appender más rápido para log4Net aparte de ConsoleAppender?¿Cuál es el appender más rápido para log4Net?
Respuesta
Pagar el BufferingForwardingAppender. Usamos esto que avanza a RollingFileAppender. Encabeza las escrituras y permite que el código continúe sin esperar la escritura. Configuramos un Evaluador para forzar un enjuague en el umbral de WARN y configuramos lossy en falso para no perder ningún mensaje.
<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender">
<bufferSize value="512" />
<lossy value="false" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<appender-ref ref="RollingFileAppender" />
</appender>
Se podría escribir un Log4net equivalente de NullAppender, lo que sería muy rápido ... (Vaya - Al principio pensé que la pregunta era acerca de log4j; el mismo consejo se aplica sin embargo.)
Por supuesto, que wouldn' Hago algo útil, lo que me lleva a preguntarme por qué le da tanta importancia a la velocidad. El enfoque normal es calcular lo que necesita, luego compararlo/evaluarlo para verificar si funciona adecuadamente. Sospecho que estarás inundado con más datos de los que puedes procesar de manera útil antes de que se convierta en un cuello de botella. ¿Tiene un problema de rendimiento conocido con el registro?
No es el problema de rendimiento no con el registro, pero en general estoy buscando mejorar el rendimiento de una aplicación y he agregado log4Net para perfilarlo en el tiempo de ejecución. No quiero que esto sea excesivo ya que la aplicación ya es lenta. Así que estoy buscando el appender que es el más rápido. – Amitabh
@Amitabh: si la aplicación ya es lenta, eso significa que es incluso * menos * probable que el registro tenga un impacto significativo. Realmente, use lo que sea que logre registros con mayor facilidad, y luego simplemente use el registro de manera sensata. Es probable que sea la forma más rápida de mejorar la velocidad general de su aplicación. –
Agregaré que a veces el problema no es lo lento que es el registro, sino cuán invasivo. Por ejemplo, si está iniciando sesión desde múltiples hilos, el solo hecho de iniciar sesión puede hacer que se sincronicen, lo que arroja lo que desea medir. La respuesta habitual es iniciar sesión en una cola, que se procesa en un único hilo. –
debe tener en cuenta
- escrito al archivo es mucho más rápido que escribir a la consola
- supongo que su problema es con la pre-producción (ceating los datos de registro y luego no usarlo) use log.canLog para asegurarse de que puede iniciar sesión antes de crear sus datos (este suele ser el gran consumidor)
- compruebe que no está utilizando todo tipo de campos que consumen tiempo como las credenciales actuales del usuario, etc.
- 1. Log4net appender cuestión nombre
- 2. Log4net: SysLog Appender Ejemplo
- 3. Log4net - smtp appender no funciona
- 4. WCF: ¿cuál es el enlace más rápido?
- 5. ¿Cuál es el algoritmo más rápido para realizar exponenciación?
- 6. ¿Cuál es el estilo de CSS más rápido/más eficiente
- 7. hilos log4net + + rodando múltiples appender archivo
- 8. Log4net: Rolling appender Archivo, definir la extensión
- 9. numpy.max o max? ¿Cuál es más rápido?
- 10. ¿Cuál es más rápido y por qué?
- 11. ¿Cuál es más rápido COALESCE O ISNULL?
- 12. Mapa/ArrayList: cuál es más rápido para buscar un elemento
- 13. ¿Cuál es el analizador XML más rápido en PHP?
- 14. Cuál es más rápido y más ligero - mysqli & PDO
- 15. Log4net - conecta dinámicamente el appender entre AdoNetAppender y RollingFileAppender
- 16. Entre Encontrar, Solo, Primero, ¿cuál es el más rápido?
- 17. ¿Cuál es el protocolo más rápido, ssh o git?
- 18. ¿Cuál es el más rápido en PHP- MySQL o MySQLi?
- 19. array_push() vs. $ array [] = .... ¿Cuál es el más rápido?
- 20. ¿Cuál es el camino más rápido para encontrar la distancia más corta entre dos cartesiano polígonos
- 21. ¿Cuál es el método más rápido/más seguro para iterar sobre un HashSet?
- 22. ¿cuál es el patrón log4net para obtener el equivalente de Trace.indent y trace.unindent
- 23. ¿Qué es el registrador raíz en log4net
- 24. ¿Existe el LogonNet Http Appender?
- 25. ¿Es + = más rápido que - =?
- 26. Idiomas interpretados: ¿el nivel más alto es el más rápido?
- 27. ¿Puedo pasar argumentos a un constructor de Appender log4net personalizado?
- 28. count VS seleccionar en LINQ - ¿cuál es más rápido?
- 29. mysql, ifnull vs coalesce, ¿cuál es más rápido?
- 30. C++ Exp vs. Log: ¿Cuál es más rápido?
Muy buena idea. No lo he intentado todavía pero lo haré alguna vez. –
Exactamente lo que no sabía que estaba buscando. – ctrlplusb
He probado esto en un proyecto web simple y (sorprendentemente) la escalabilidad no mejora, es bastante peor en su lugar. ** Prueba **: 500 solicitudes/50 usuarios para 20 líneas de registro por solicitud. ** Resultados **: Sin registro: 278 req/s, Aplicador de archivos rodantes: 129 req/s, Reenvío de búfer con archivo continuo: 76 req/s. – tozevv