【发布时间】:2018-10-09 21:32:02
【问题描述】:
我知道它可以使用 log4net 的内置级别 INFO、WARN、ERROR 和 FATAL 消息
是否可以创建新的?
【问题讨论】:
我知道它可以使用 log4net 的内置级别 INFO、WARN、ERROR 和 FATAL 消息
是否可以创建新的?
【问题讨论】:
这可以通过如下所述的扩展方法来完成: 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);
【讨论】:
现在已经有好几年了,但this 线程讨论了你想要做什么。
【讨论】:
我正在使用它来实现详细和/或跟踪级别:
【讨论】:
我的立场是正确的。在 log4j 中也是可能的——我从来没有做过:
https://logging.apache.org/log4j/1.2/faq.html#custom-level
除非我看到威廉的回复并再次检查,否则我不会知道。
【讨论】: