Why isn't there a trace level in log4Net?

后端 未结 3 1801
北海茫月
北海茫月 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

    0 讨论(0)
  • 2021-01-31 09:19

    The log4net.ILog interface only exposes methods and properties for Fatal, Error, Warn, Info and Debug levels.

    I agree this is a bit limiting and would like to see one more level in there. But then the optimal number of levels is probably "one more than the current number of levels" - you'll always find yourself occasionally wanting one more level.

    0 讨论(0)
  • 2021-01-31 09:27

    There is a trace level in the log4net.Core.Level class http://logging.apache.org/log4net/release/sdk/html/F_log4net_Core_Level_Trace.htm

    0 讨论(0)
提交回复
热议问题