我已经将Log4net包装在静态包装器中并想要记录
loggingEvent.LocationInformation.MethodName loggingEvent.LocationInformation.ClassName
然而,我得到的只是我的包装器的名称.
如何使用forwardingappender和静态包装类来记录该信息
Logger.Debug("Logging to Debug"); Logger.Info("Logging to Info"); Logger.Warn("Logging to Warn"); Logger.Error(ex); Logger.Fatal(ex);
Magnus Johan.. 27
怎么样%M
和%C
变量?
http://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Layout.PatternLayout.html
用法,例如:
那不是你做的事吗?
怎么样%M
和%C
变量?
http://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Layout.PatternLayout.html
用法,例如:
那不是你做的事吗?
好吧,错误是在我的附近,但为了完整性,包括我所知的最佳答案:
你需要的Facade应该包装ILogger而不是ILog
public static class Logger { private readonly static Type ThisDeclaringType = typeof(Logger); private static readonly ILogger defaultLogger; static Logger() { defaultLogger = LoggerManager.GetLogger(Assembly.GetCallingAssembly(),"MyDefaultLoggger");
...
public static void Info(string message) { if (defaultLogger.IsEnabledFor(infoLevel)) { defaultLogger.Log(typeof(Logger), infoLevel, message, null); } }
只需声明你的日志变量......
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
然后你可以正常使用它.