博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#之MVC中使用Log4Net
阅读量:6270 次
发布时间:2019-06-22

本文共 7282 字,大约阅读时间需要 24 分钟。

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

 

转载于:https://www.cnblogs.com/zengnansheng/p/10389368.html

你可能感兴趣的文章
我们为什么从Python转到go?
查看>>
5.Azure负载均衡(上)
查看>>
轻松精通awk数组企业问题案例
查看>>
26.Azure备份服务器(下)
查看>>
从“网上说的能信么”说开去---学习的思考
查看>>
DHCP 日志分析
查看>>
.NET Micro Framework动态调用C/C++底层代码(原理篇)
查看>>
Windows Server 2012正式版RDS系列⒃
查看>>
Shell脚本之awk篇
查看>>
微软发布Azure Stack硬件需求
查看>>
python socket编程详细介绍
查看>>
Windows Server 2016第三个技术预览版新技术
查看>>
Everything 本地磁盘文件搜索工具下载!
查看>>
Python dict(字典) 详细总结
查看>>
RPF(Reverse Path Forwarding 反向路径转发)技术
查看>>
2016年收到的第一件礼物,被评上微软全球最有价值专家MVP(一)
查看>>
2016中国VR开发者论坛第一期
查看>>
Hyper-V 2016 系列教程5 Hyper-V 服务器基本属性
查看>>
北京、天津工厂自动监测数据爬取
查看>>
第一个python程序简单加法计算器
查看>>