Log4net创建自定义级别

时间:2009-07-19 21:57:00

标签: logging log4net

我知道可以在log4net中使用内置级别 INFO,WARN,ERROR和FATAL消息

是否可以创建新的?

4 个答案:

答案 0 :(得分:16)

可以使用此处概述的扩展方法完成此操作: http://rageshkrishna.com/2011/01/21/AddingCustomLogLevelsToLog4net.aspx

  

添加一些扩展方法使得开始使用它变得简单   新的日志级别:

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);
   }

}
  

就是这样 - 现在我可以开始使用我的新“Auth”日志记录级别了   ILog的任何实例都是这样的:

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

答案 1 :(得分:1)

我正在使用它来实现详细和/或跟踪级别:

Log4net, how to log a verbose message?

答案 2 :(得分:0)

我的立场得到了纠正。这在log4j中也是可能的 - 我从来没有这样做过:

https://logging.apache.org/log4j/1.2/faq.html#custom-level

除非我看到威廉的回应并再次检查,否则我不会知道。

答案 3 :(得分:0)

现在已经有好几年了,但this线程讨论了你要做的事情。