Estoy intentando filtrar mi appender según el tipo de excepción que se está registrando. ¿Es esto posible en log4net?¿Algún filtro de apéndice Log4Net para un tipo de excepción específico?
6
A
Respuesta
9
log4net no es compatible con esto directamente. Sin embargo, puede implementar fácilmente su propio filtro derivando de la interfaz IFilter
o de la clase FilterSkeleton
(ambas en el espacio de nombres log4net.Filter
).
Algo como esto debe hacer el truco:
public class ExceptionTypeFilter : FilterSkeleton
{
override public FilterDecision Decide(LoggingEvent loggingEvent)
{
var ex = loggingEvent.ExceptionObject as YourExceptionType;
return (ex != null) ? FilterDecision.Accept : FilterDecision.Deny;
}
}
Este filtro se puede entonces utilizar como un filtro normal. Para mayor referencia, puede consultar el código fuente de los filtros log4net estándar.
Cuestiones relacionadas
- 1. log4net: ¿algún filtro para registrar solo el enésimo mensaje?
- 2. log4net - confgure para ignorar mensajes de un hilo específico
- 3. El umbral de apéndice de Log4net no funciona
- 4. excepción de configuración log4net
- 5. Filtro de servlet - No aplicar filtro a uno específico
- 6. excepción mod_rewrite para un archivo específico
- 7. ¿Debería el convertidor arrojar algún tipo de excepción?
- 8. ¿Hay algún problema con Log4Net?
- 9. Tipo de colección de Scala para filtro
- 10. ¿Cómo filtro en un nivel personalizado en log4net?
- 11. Codificación de ... algún tipo?
- 12. Python: Operador Sobrecarga de un tipo específico
- 13. Jersey y filtro Excepción de manipulación
- 14. ¿Es razonable en Python verificar un tipo específico de excepción usando isinstance?
- 15. El inicializador de tipo para 'NHibernate.LoggerProvider' lanzó una excepción
- 16. ¿Cómo hacer std :: vector de otro vector con filtro específico?
- 17. log4net configuración de código puro con filtro en C#
- 18. C# Generics - ¿Cómo devuelvo un tipo específico?
- 19. Tipo excepción de inicialización
- 20. ¿Es SystemExit un tipo especial de excepción?
- 21. Filtros de Log4Net "O"
- 22. Python: ¿Cómo atrapar este tipo de excepción?
- 23. Tipo de excepción en un manejador
- 24. Django filtro() tipo de búsqueda de documentación
- 25. ¿Hay algún tipo de "modo de rendimiento estricto" para MySQL?
- 26. ¿Hay algún tipo de herramienta de cobertura 'assertion' (para Java)?
- 27. Manejar tipo de excepción específica en python
- 28. Crear apéndice en Lyx
- 29. C# ¿qué tipo de excepción debo plantear?
- 30. Log4Net - Cerrar sesión en la pila de pila de excepción solo para ciertos archivos
Este código solo registraría su tipo de excepción específica. Si desea filtrar una excepción específica, puede invertir el Aceptar y denegar. FilterDecision.Accept significa registrarlo. Denegar significa no iniciar sesión. Probablemente es obvio, pero me tomó un minuto pensarlo detenidamente. :) – scw
Y si tiene más de un filtro, es posible que necesite usar FilterDecision.Neutral. – scw