2009-07-19 19 views

Respuesta

0

Ya son bastantes años, pero el hilo this explica lo que estás buscando hacer.

+3

Enlace muerto, pero disponible en [el Archivo de Internet] (https://web.archive.org/web/20130528024223/http://www.l4ndash.com/Log4NetMailArchive/tabid/70/forumid/1/postid/14714/view/topic/Default.aspx) – stuartd

+0

Y un algunos años después ... ambos enlaces están muertos. ¡Yay por link rot! – WernerCD

13

Esto se puede hacer con un método de extensión según lo señalado aquí: http://rageshkrishna.com/2011/01/21/AddingCustomLogLevelsToLog4net.aspx

Agregando un poco de extensión métodos hace que sea muy fácil comenzar a usar los nuevos niveles de registro :

public static class SecurityExtensions 
{ 
    static readonly log4net.Core.Level authLevel = new log4net.Core.Level(50000, "Auth"); 

    public static void Auth(this ILog log, string message) 
    { 
     log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, 
      authLevel, message, null); 
    } 

    public static void AuthFormat(this ILog log, string message, params object[] args) 
    { 
     string formattedMessage = string.Format(message, args); 
     log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, 
      authLevel, formattedMessage, null); 
    } 

} 

Y eso es todo - ahora puedo empezar a usar mi nuevo nivel de registro “autenticación” en la cualquier instancia de ILOG como esto:

SecurityLogger.AuthFormat("User logged in with id {0} from IP address {1}", id, Request.UserHostAddress); 
+3

Gracias por ser la única respuesta a esta pregunta que no es solo un enlace. – Shelby115

Cuestiones relacionadas