当前位置:  编程技术>.net/c#/asp.net

log4net创建系统日志的方法详解

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本节内容: Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,扩展输出自定义字段。 前言 用户可以从http://logging.apache.org/log4net/下载log4net的源代码。解压软件包后,在解压的src目录下将log4net.sln载入Visual Studio .NET,编...

本节内容:
Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,扩展输出自定义字段。

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

在项目中配置

第一步:首先在项目中引用log4net.dll文件。
第二步:在Web.config文件中进行添加configSections的节点
 

代码示例:
 
   
   
 
 

第三步:添加log4net配置节点
 

代码示例:


 

然后在log4net节点下添加写入本地文本文件中的配置
 

代码示例:

   
   
   
   
   
   
     
     
        

写入指定邮箱的配置:
 

代码示例:


  
  
  
  
  
  
  
  
  
  
       
  
  
           
  
       
 

通过的是163邮箱服务器发送
将日志写入数据库的相关配置,还要建立一张对应的数据库表
 

代码示例:

   
   
   
   
   
   
       
       
       
   
   
       
       
       
       
 
        
   
   
       
       
       
       
 
       
   
   
       
       
       
       
  
       
   
   
       
       
       
       
  
       
   
   
       
       
       
       
     

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

代码示例:

   
   
   
   
   
   
      
   

在log4net节点中还有两个节点:
 

代码示例:

       
       
     
     
       
 
 
 

在框架的体系里,所有的日志对象都是根日志(root logger)的后代。 因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。

在标签里,可以定义level级别值和Appender的列表。如果没有定义LEVEL的值,则缺省为DEBUG。可以通过标签定义日志对象使用的Appender对象。声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。

而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。这种缺省的行为方式也可以通过显式地设定标签的additivity属性为false而改变。

数据库日志的写入和邮箱的写入,在Global.asax文件初始化配置:
 

代码示例:

protected void Application_Start()
{
   //读取日志  如果使用log4net,应用程序一开始的时候,都要进行初始化配置
   log4net.Config.XmlConfigurator.Configure();

   AreaRegistration.RegisterAllAreas();
   RegisterGlobalFilters(GlobalFilters.Filters);
   RegisterRoutes(RouteTable.Routes);
        }
 

调用示例:
 

代码示例:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Loggering");
public ActionResult About()
{
    log.Info("log日志信息");
    log.Debug("debug信息");
    log.Error("error信息");
    log.Warn("warn信息");
    Exception ex = new Exception("测试的异常信息");
    log.Fatal("fatal信息", ex);
   return View();
}
 

Log4net中 DEBUG、INFO、WARN、ERROR 区分得很好。正常的 DEBUG、INFO 的日志, 就让它记录在 日志文件里面吧。
对于 WARN、ERROR 级别的日志, 记录到日志文件的同时, 顺便发送电子邮件到我的信箱里面。 这样一来, 我也不必每天去看日志文件, 二来,出了什么问题, 能及时通过电子邮件得到通知。
数据库结构:
 

代码示例:
create database Log4Net
go
use Log4Net
create table _log
(
    id int identity(1,1) primary key not null,
    date datetime null,
    thread int null,
    level varchar(10) null,
    logger varchar(20) null,
    Message varchar(100) null,
    Exception varchar(100) null
)

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • log4net配置和使用方法分享
  • log4net教程日志分类和自动维护示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3