配色: 字号:
log4net创建系统日志的详细步骤
2016-12-14 | 阅:  转:  |  分享 
  
log4net创建系统日志的详细步骤



log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是简单的介绍如何在VisualStudio2010(Asp.NetMvc3.0)中使用log4net快速创建系统日志,如何扩展以输出自定义字段



前言

用户可以从http://logging.apache.org/log4net/下载log4net的源代码。解压软件包后,在解压的src目录下将log4net.sln载入VisualStudio.NET,编译后可以得到log4net.dll。用户要在自己的程序里加入日志功能,只需将log4net.dll引入工程即可。



在项目中配置



第一步:首先在项目中引用log4net.dll文件。

第二步:在Web.config文件中进行添加configSections的节点





复制代码代码如下:



















第三步:添加log4net配置节点





复制代码代码如下:















然后在log4net节点下添加

写入本地文本文件中的配置





复制代码代码如下:

































注释很清楚,就不解释了。

写入指定邮箱的配置





复制代码代码如下:















































通过的是163邮箱服务器发送

将日志写入数据库的相关配置,还要建立一张对应的数据库表





复制代码代码如下:















































































































另外一种写入文件的方式配置





复制代码代码如下:































在log4net节点中还有两个节点





复制代码代码如下:































在框架的体系里,所有的日志对象都是根日志(rootlogger)的后代。因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。在标签里,可以定义level级别值和Appender的列表。如果没有定义LEVEL的值,则缺省为DEBUG。可以通过标签定义日志对象使用的Appender对象。声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。这种缺省的行为方式也可以通过显式地设定标签的additivity属性为false而改变。

那么上面就会有数据库日志的写入和邮箱的写入

在Global.asax文件初始化配置





复制代码代码如下:





protectedvoidApplication_Start()

{

//读取日志如果使用log4net,应用程序一开始的时候,都要进行初始化配置

log4net.Config.XmlConfigurator.Configure();



AreaRegistration.RegisterAllAreas();



RegisterGlobalFilters(GlobalFilters.Filters);

RegisterRoutes(RouteTable.Routes);

}







调用





复制代码代码如下:





privatestaticreadonlylog4net.ILoglog=log4net.LogManager.GetLogger("Loggering");

publicActionResultAbout()

{

log.Info("log日志信息");

log.Debug("debug信息");

log.Error("error信息");

log.Warn("warn信息");

Exceptionex=newException("测试的异常信息");

log.Fatal("fatal信息",ex);

returnView();

}







运行一下





Log4net中DEBUG、INFO、WARN、ERROR区分得很好。正常的DEBUG、INFO的日志,就让它记录在日志文件里面吧。

对于WARN、ERROR级别的日志,记录到日志文件的同时,顺便发送电子邮件到我的信箱里面。这样一来,我也不必每天去看日志文件,二来,出了什么问题,能及时通过电子邮件得到通知。

数据库结构





复制代码代码如下:





createdatabaseLog4Net

go

useLog4Net

createtable_log

(

idintidentity(1,1)primarykeynotnull,

datedatetimenull,

threadintnull,

levelvarchar(10)null,

loggervarchar(20)null,

Messagevarchar(100)null,

Exceptionvarchar(100)null

)







还待优化,有空了再来琢磨琢磨。





















献花(0)
+1
(本文系白狐一梦首藏)