Log4net 集成到MVC+EF框架

前提引用Log4Net.dll文件

1、

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]

上述代码写到AssemblyInfo.cs文件中

2、Global.asax文件中,Application_Start方法中添加对Log4Net的初始化代码如下:

string l4net = Server.MapPath("~/Web.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));

3、配置web.config文件,内容如下,部分配置说明,详见注释

 1      <!--该项配置必须放在configuration的第一个节点的位置上-->     <configSections>
 2    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 3   </configSections>
 4
 5  <log4net debug="true">
 6     <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
 7       <filter type="log4net.Filter.LevelMatchFilter">
 8         <levelToMatch value="ERROR" />
 9       </filter>
10       <filter type="log4net.Filter.DenyAllFilter" />
11       <!--日志文件名开头-->
12       <file value="..\\Logs\\Error\\" />
13       <!--是否追加到文件-->
14       <appendToFile value="true" />
15       <!--混合使用日期和文件大小变换日志文件名-->
16       <rollingStyle value="Composite" />
17       <!--最大变换数量-->
18       <maxSizeRollBackups value="10"/>
19       <!--最大文件大小-->
20       <maximumFileSize value="500KB"/>
21       <!--日期的格式   StaticLogFileName的值如果为true,
22       则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。
23       如果为false,则文件名取File+DatePattern。-->
24       <staticLogFileName value="false" />
25       <!--下面格式 日志可以按照月份归档-->
26       <datePattern value="yyyy-MM/yyyy-MM-dd.‘log‘" />
27       <layout type="log4net.Layout.PatternLayout">
28         <conversionPattern value="%date  %logger : %message%newline" />
29       </layout>
30     </appender>
31     <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
32       <filter type="log4net.Filter.LevelMatchFilter">
33         <levelToMatch value="INFO" />
34       </filter>
35       <!--不符合info条件的日志,不做输出-->
36       <filter type="log4net.Filter.DenyAllFilter" />
37       <!--日志文件名开头-->
38       <file value="..\\Logs\\Info\\" />
39       <!--是否追加到文件-->
40       <appendToFile value="true" />
41       <!--混合使用日期和文件大小变换日志文件名-->
42       <rollingStyle value="Composite" />
43       <!--最大变换数量-->
44       <maxSizeRollBackups value="10"/>
45       <!--最大文件大小-->
46       <maximumFileSize value="500KB"/>
47       <!--日期的格式-->
48       <staticLogFileName value="false" />
49       <datePattern value="yyyy-MM-dd" />
50       <layout type="log4net.Layout.PatternLayout">
51         <conversionPattern value="%date  %logger : %message%newline" />
52       </layout>
53     </appender>
54     <root>
55       <level value="All" />
56       <appender-ref ref="ErrorAppender" />
57       <appender-ref ref="InfoAppender" />
58     </root>
59   </log4net>

4、添加LogHelper.cs文件

 1  public class LogHelper
 2     {
 3         public static void debug(string message)
 4         {
 5             log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
 6             if (log.IsDebugEnabled)
 7             {
 8                 log.Debug(message);
 9             }
10             log = null;
11         }
12
13         public static void error(string message)
14         {
15             log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
16             if (log.IsErrorEnabled)
17             {
18                 log.Error(message);
19             }
20             log = null;
21         }
22
23         public static void fatal(string message)
24         {
25
26             log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
27             if (log.IsFatalEnabled)
28             {
29                 log.Fatal(message);
30             }
31             log = null;
32         }
33         public static void info(string message)
34         {
35             log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
36             if (log.IsInfoEnabled)
37             {
38                 log.Info(message);
39             }
40             log = null;
41         }
42
43         public static void warn(string message)
44         {
45             log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
46             if (log.IsWarnEnabled)
47             {
48                 log.Warn(message);
49             }
50             log = null;
51         }
52     }

至此,就可以开启你的Log4net之旅

时间: 2024-10-07 12:38:16

Log4net 集成到MVC+EF框架的相关文章

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成

ASP.NET MVC+EF框架+EasyUI实现权限管理系列

http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也要感谢大家了,因这个 项目我已经上传了,得到了很多网友的评价,也有好多人发邮件给我说这个框架容易出现问题,不能访问,这也是支持我写这个系列的动力,我将这个项目写成一个 系列

ASP.NET MVC+EF框架+EasyUI实现权限管理

4.为什么使用MVC而不是用WebForm呢? (1)为什么使用MVC而不是用WebForm呢?这个是我临时想的,因为我就是想说明一下WebForm和MVC的优缺点,来可以使大家能够更好地理解 MVC和WebForm,而不像某些人说MVC会替代WebForm,我个人认为这个可能性很小,因为各有各的好处,看在哪里使用吧,下面我就简单介绍下 WebForm和MVC的优缺点. (2)WebForm介绍 1)优点 1):支持事件模型,取决于微软提供了丰富的服务器端组建,WebForm可以快速的搭建Web

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装 前言:今天经理买了一个诺基亚的Windows Phone 8系统,特感兴趣,所以在哪里看了很长时间,这篇文章就写的有点迟, 从这个Demo开始到现在我已经写了4篇博客了,终于可以看到页面的东

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这篇博客我们继续来实现我的权限系列,这个博客一段时间也没有写了,重点是我在想还写不写,最终我决定还是写下去,因为我们是为了学习,当别人提出意见的时候,我们可以参考和采纳,但是我们不一定非要采纳,上几篇博客大家都说用CodeFirst来实现,是啊,现在基本很少有人用我的这种方法来实现了,都是用CodeF

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现 前言:通过前面的五篇博客我们已经对权限系统的后台架构进行了详细的说明,那么我再前面的博客中也说到了我们的后台架构还会再改的,我准备这段时间我们继续完善我们的后台

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现   (6):EF上下文实例管理 前言:上篇博客中我们重新对EF框架实现上下文进行了重新的操作,而且我们也建立了DbSession,使用CallContext

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现   (6):EF上下文实例管理   (7):DBSession的封装   (8):DBSession线程内唯一 前言:前面我们基本已经完成了一个Demo,我们在后面的