Why isn't there a trace level in log4Net?

后端 未结 3 1800
北海茫月
北海茫月 2021-01-31 08:54

I was just wondering why there isn\'t a trace level in log4Net. This level seems to be missing and I sometimes feel the need to use it, for example to output what events are bei

3条回答
  •  醉梦人生
    2021-01-31 09:04

    You can add a Verbose (or Trace level) to log4net by using extension methods. This is what I'm using:

    public static class ILogExtentions
    {       
        public static void Trace(this ILog log, string message, Exception exception)
        {
            log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, 
                log4net.Core.Level.Trace, message, exception);
        }
    
        public static void Trace(this ILog log, string message)
        {
            log.Trace(message, null);
        }
    
        public static void Verbose(this ILog log, string message, Exception exception)
        {
            log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, 
                log4net.Core.Level.Verbose, message, exception);
        }
    
        public static void Verbose(this ILog log, string message)
        {
            log.Verbose(message, null);
        }
    
    }
    

    Usage example:

    public class ClientDAO
    {
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(ClientDAO));
    
        public void GetClientByCode()
        {
            log.Trace("your verbose message here");
            //....
        }
    }
    

    Source:

    http://www.matthewlowrance.com/post/2010/07/14/Logging-to-Trace-Verbose-etc-with-log4net.aspx

提交回复
热议问题