而不是log.Debug(...)
或log.Info(...)
我想写这样的代码:
var logLevel = GetLogLevel(); // Returns something like DEBUG or INFO
log.Log(logLevel, ...);
如何以简单方便的方式在log4net中执行此操作?
答案 0 :(得分:0)
您可以使用扩展方法扩展ILog:
public static Level GetLogLevel(this ILog log)
{
if (log.IsEnabledFor(Level.Debug)) { return Level.Debug; }
else ....
}
public static void Log(this ILog log, Level level, ...)
{
switch(level) ....
}
但是,通常您会调整记录器以从特定日志级别获取消息,而不是更改代码中记录的级别。如果要更改级别,则可以更好地记录致命级别的所有邮件。