1 下载log4net.dll
2 在web.config 中的 <configSections>节点内增加如下代码
3 新增Config文件夹并增加log4net.config文件 具体配置可以自定义 示例内容如下:
4 添加一个Log4NetHelper类库文件 内容如下:
public static class Log4NetHelper { private static string _debugAppender = "logdebug"; private static string _errorAppender = "logerror"; private static string _fatalAppender = "logfata"; private static string _infoAppender = "loginfo"; private static string _warnAppender = "logwarn"; #region 属性设置 ////// 设置DebugAppender的值,默认为:logdebug /// public static string DebugAppender { set { _debugAppender = value; } } ////// 设置ErrorAppender的值,默认为:logerror /// public static string ErrorAppender { set { _errorAppender = value; } } ////// 设置FatalAppender的值,默认为:logfata /// public static string FatalAppender { set { _fatalAppender = value; } } ////// 设置InfoAppender的值,默认为:loginfo /// public static string InfoAppender { set { _infoAppender = value; } } ////// 设置WarnAppender的值,默认为:logwarn /// public static string WarnAppender { set { _warnAppender = value; } } #endregion ////// 加载log4net的日志配置文件 /// /// 日志配置文件的完整路径 public static void LoadConfig(string configFilePath) { if (string.IsNullOrEmpty(configFilePath) || !File.Exists(configFilePath)) { throw new ArgumentNullException("日志配置文件不存在"); } XmlConfigurator.ConfigureAndWatch(new FileInfo(configFilePath)); } ////// 根据指定的日志适配器名称获取日志对象 /// /// 日志适配器名称 ///日志对象 private static ILog GetLogByName(string appenderName) { if (string.IsNullOrEmpty(appenderName)) { throw new ArgumentNullException("日志配置名称不能为空"); } return LogManager.GetLogger(appenderName); } ////// 记录调试日志 /// /// 日志信息,如果因异常记录日志,则message可以为null public static void Debug(string message) { ILog logByName = GetLogByName(_debugAppender); if (logByName.IsDebugEnabled) { logByName.Debug(message); } } ////// 记录调试日志 /// /// 日志信息,如果因异常记录日志,则message可以为null /// 为日志附加异常信息,可以在配置中获取更准确的信息,如无异常信息,则可以为null public static void Debug(string message, Exception exception) { ILog logByName = GetLogByName(_debugAppender); if (logByName.IsDebugEnabled) { logByName.Debug(message, exception); } } ////// 记录错误日志 /// /// 日志信息,如果因异常记录日志,则message可以为null public static void Error(string message) { ILog logByName = GetLogByName(_errorAppender); if (logByName.IsErrorEnabled) { logByName.Error(message); } } ////// 记录错误日志 /// /// 日志信息,如果因异常记录日志,则message可以为null /// 为日志附加异常信息,可以在配置中获取更准确的信息,如无异常信息,则可以为null public static void Error(string message, Exception exception) { ILog logByName = GetLogByName(_errorAppender); if (logByName.IsErrorEnabled) { logByName.Error(message, exception); } } ////// 记录严重错误日志 /// /// 日志信息,如果因异常记录日志,则message可以为null public static void Fatal(string message) { ILog logByName = GetLogByName(_fatalAppender); if (logByName.IsFatalEnabled) { logByName.Fatal(message); } } ////// 记录严重错误日志 /// /// 日志信息,如果因异常记录日志,则message可以为null /// 为日志附加异常信息,可以在配置中获取更准确的信息,如无异常信息,则可以为null public static void Fatal(string message, Exception exception) { ILog logByName = GetLogByName(_fatalAppender); if (logByName.IsFatalEnabled) { logByName.Fatal(message, exception); } } ////// 记录信息日志 /// /// 日志信息,如果因异常记录日志,则message可以为null public static void Info(string message) { ILog logByName = GetLogByName(_infoAppender); if (logByName.IsInfoEnabled) { logByName.Info(message); } } ////// 记录信息日志 /// /// 日志信息,如果因异常记录日志,则message可以为null /// 为日志附加异常信息,可以在配置中获取更准确的信息,如无异常信息,则可以为null public static void Info(string message, Exception exception) { ILog logByName = GetLogByName(_infoAppender); if (logByName.IsInfoEnabled) { logByName.Info(message, exception); } } ////// 记录警告日志 /// /// 日志信息,如果因异常记录日志,则message可以为null public static void Warn(string message) { ILog logByName = GetLogByName(_warnAppender); if (logByName.IsWarnEnabled) { logByName.Warn(message); } } ////// 记录警告日志 /// /// 日志信息,如果因异常记录日志,则message可以为null /// 为日志附加异常信息,可以在配置中获取更准确的信息,如无异常信息,则可以为null public static void Warn(string message, Exception exception) { ILog logByName = GetLogByName(_warnAppender); if (logByName.IsWarnEnabled) { logByName.Warn(message, exception); } } }
5 在global.asax.cs 的Application_Start方法增加如下代码
//读取log4net的配置文件
Log4NetHelper.LoadConfig(AppDomain.CurrentDomain.BaseDirectory + "Config\\Log4net.config");
6 控制器action方法调用示例
Log4NetHelper.Error("abc"); Log4NetHelper.Info("abc"); Log4NetHelper.Fatal("abc"); Log4NetHelper.Debug("abc"); Log4NetHelper.Warn("abc");