`
wangdeshui
  • 浏览: 246663 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ASP.Net2.0使用Log4Net(一)

阅读更多

第一种方法 在web.config中写配置文件

  1. Log4Net主页: http://logging.apache.org/log4net/,下载Log4Net
  2. Log4Net主要由Logger, Appender, Filter, Layout 4个组件构成, 一般情况下后3个组件在配置文件中配置.
    Logger 
    负责产生日志消息,可以在代码中调用
    Appender
    负责向存储介质中追加日志, 一般在配置文件中配置,根据保存日志介质的不同Appender有多种, 比如:AdoNetAppender,EventLogAppender,RollingFileAppender.参见: http://logging.apache.org/log4net/release/config-examples.html.
    Filter
    负责过滤日志, 一般和Appender联合使用,在配置文件中配置
    Layout
    负责日志消息的格式, 一般和Appender联合使用,在配置文件中配置。 
  3. 使用步骤  

         1.给web项目添加引用log4net.dll 
         2.
在web.config的configuration(最顶层)下加  (网上文章是把log4net放到configSections前面,但是我编译不通过) 

<configSections>    
    
<section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"  />
  
</configSections>
  
<log4net>
    
<root></root>
    
<logger name="Test">
      
<level value="DEBUG" />
      
<appender-ref ref="rollingFile" />
    
</logger>
    
<appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
      
<param name="File" type=""  value="log/" />
      
<param name="AppendToFile" value="true" />
      
<param name="RollingStyle" value="Date" />
      
<param name="DatePattern" value="yyyyMMdd" />
      
<param name="StaticLogFileName" value="false" />
      
<layout type="log4net.Layout.PatternLayout,log4net">
        
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        
<param name="Header" value=" ----------------------header-------------------------- " />
        
<param name="Footer" value=" ----------------------footer-------------------------- " />
      
</layout>
    
</appender>
  
</log4net>


Logger的Level属性可以设以下值,由高到低为OFF,FATAL, ERROR,WARN,INFO,DEBUG,ALL.  高于设定值方法都能写入日志, Off所有的写入方法都不写到日志里,ALL则相反。例如当我们设成Info时,logger.Debug就会被忽略而不写入文件,但是FATAL, ERROR,WARN,INFO会被写入,因为他们等级高于INFO;
          3. 在Global.ascx(如果项目中没有,则新建)中的Application_Start方法中加入

void Application_Start(object sender, EventArgs e) 
    
{
     
// Code that runs on application startup

     log4net.Config.XmlConfigurator.Configure();

    }

 

       4.配置<log4net>标签中的内容 

 

<log4net>
    
<root>
      
<!--
            <level value="ALL" />
            <appender-ref ref="rootFile" />
            
-->
    
</root>
    
<logger name="Test">
      
<level value="DEBUG" />
      
<appender-ref ref="rollingFile" />
    
</logger>
    
<appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
      
<param name="File" type=""  value="log/" />
      
<param name="AppendToFile" value="true" />
      
<param name="RollingStyle" value="Date" />
      
<param name="DatePattern" value="yyyyMMdd" />
      
<param name="StaticLogFileName" value="false" />
      
<layout type="log4net.Layout.PatternLayout,log4net">
        
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        
<param name="Header" value=" ----------------------header-------------------------- " />
        
<param name="Footer" value=" ----------------------footer-------------------------- " />
      
</layout>
    
</appender>
  
</log4net>


     log4net标签的框架如下, 该标签下有root, logger, appender等标签 
       root标签 
       
所有的logger都从root继承, root本身也是一个logger 
       logger标签 
       每个logger标签代表一个logger,appender-ref表示该logger产生的日志消息传递给哪个appender,一个logger可以把相同的消息传递给多个appender记录
      appender标签 
      每个appender表示一个日志的存储位置,name不能和type一样 

类型是RollingFileAppender
<appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
  
<param name="File" value="log" />                  文件名以log为开头
  
<param name="AppendToFile" value="true" />        是否是向文件中追加日志
  
<param name="RollingStyle" value="Date" />        日志根据日期滚动
  
<param name="DatePattern" value="yyyyMMdd" />    日志文件名格式为: log20071120
  
<param name="StaticLogFileName" value="false" /> 日志文件名是否是固定不变的

  日志消息的格式,   表示换行
  
<layout type="log4net.Layout.PatternLayout,log4net">
    
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    
<param name="Header" value=" ----------------------header-------------------------- " />
    
<param name="Footer" value=" ----------------------footer-------------------------- " />
  
</layout>
</appender>

消息模式
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充 
5. 在代码中调用Logger

using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using log4net;

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        ILog LOGGER 
= LogManager.GetLogger("Test");
        LOGGER.Debug(
"测试信息");
    }

}


最后,可以在根目录下找到日志对应日志文件。
本例源码:下载本文源码
注:本文参考博客园的相关文章,我用的是vs2008,但类库选得是.net framework2.0.
另记:做实例10分钟就完成了,这么短的文章我却编排了几个小时,到最后才勉强差人意,真不知写了那么多的文章的人是怎么坚持下去的。

分享到:
评论

相关推荐

    ASP&C#教程\精通Asp.net2.0+Sql2005项目开发

    \log4net\log4net.dll log4net日志组件 \App_Code\DataAccessHelper\ 数据访问接口层 GetSafeData.cs 安全获取数据类 SQLString.cs 构造SQL语句类 \App_Code\DataAccessLayer\ 数据...

    简单的ASP.NET2.0+ACCESS三层源码【C#】

    一个小项目,适合初学者参考学习。...该系统采用vs2008开发,完整的后台管理系统和前台展示,前台无ASP.NET自带的控件,该系统有自动记录异常信息的Log,维护和扩展都不错。开发该系统没赚到一分钱,放这里换点积分吧。

    .NET_Core2.0_使用swagger调试API接口_log4记录日志_外加上传图片

    此代码是asp.net core 中api的使用场景,在代码中使用了swagger来调试接口,使用log4来记载日志,外加上传文件,不懂可留下联系方式亲手传授。

    ASP.NET 2.0中预设的cookie

    今早在老外的BLOG上看到这个说法,不妨留意一下: 如果你在asp.net 2.0中使用FormsAuthentication,并且将cookie设置为持久状态,那么其... &lt;/authentication&gt; 如果不更改TIMEOUT属性,那么当你使用asp.net 2.0的LOG

    asp.net知识库

    ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认中的主题外观 数据库开发 ADO.NET 通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO...

    spring.net中文手册在线版

    11.7.在ASP.NET中的使用技巧 11.7.1.显示验证错误 11.7.1.1.配置错误显示类 第十二章. 使用Spring.NET进行面向方面的编程 12.1.简介 12.1.1.AOP基本概念 12.1.2.Spring.NET AOP的功能 12.1.3.Spring.NET的AOP代理 ...

    Asp.net企业网站管理系统源码2.0版(精美实用)

    漂亮的企业网站。NET2.0出来了, 本次升级修改如下: 1、优化了3层结构。 2、优化了后台管理代码,增强了安全性能。... 备注:本系统采用ASP.NET 2.O+ACCESS开发,请调试的朋友安装.NET2.0运行环境!

    中美 IT 培训 C# Asp.net 全套笔记1

    (160课时) 系统讲授 ASP.Net2.0、ADO.Net2.0、 基于数据库的WEB应用程序、的开发;详细地讲授Web Service及其应用和相关的安全性问题、WSE(Web Services Enhancements)、SOAP、WSDL、UDDI、Windows Service、VSS...

    企业网站管理系统 .NET版本V2.0开源版

    学习微软三层结构模型的不可多得的好例子,深度合适,结构良好 c#语言开发 Access数据库版本,开源项目 &lt;br&gt;漂亮的企业网站... 备注:本系统采用ASP.NET 2.O+ACCESS开发,请调试的朋友安装.NET2.0运行环境!

    中美 IT 培训 C# Asp.net 笔记3

    (160课时) 系统讲授 ASP.Net2.0、ADO.Net2.0、 基于数据库的WEB应用程序、的开发;详细地讲授Web Service及其应用和相关的安全性问题、WSE(Web Services Enhancements)、SOAP、WSDL、UDDI、Windows Service、VSS...

    中美 IT 培训 C# Asp.net 笔记2

    (160课时) 系统讲授 ASP.Net2.0、ADO.Net2.0、 基于数据库的WEB应用程序、的开发;详细地讲授Web Service及其应用和相关的安全性问题、WSE(Web Services Enhancements)、SOAP、WSDL、UDDI、Windows Service、VSS...

    Asp.net企业网站管理系统 v2.0 (精美实用).rar

     备注:本系统采用ASP.NET 2.O ACCESS开发,请调试的朋友安装.NET2.0运行环境!  网站内容  网站栏目包括  首页|企业简介|新闻中心|产品展示|公司展示|销售网络|联系我们|客户系统|人才管理|客户留言 后台...

    Lot4net dll及使用说明 (ASP.NET CORE 2.1)

    log4net的dll文件及使用说明,ASP.NET CORE 2.1、ASP.NET CORE 2.0下可用,ASP.NET CORE1.0可尝试。

    asp.net单用户多管理者的博客系统Roclogv4.0.0正式版

    本程序是由洛克龙阁... 服务器: 只需要支持 .NET Framework 2.0 即可。 安装: 第一步:将压缩包解压缩释放所有文件到某一目录下。 第二步:将压缩包内的所有文件上传到服务器某一空间。 第三步:修改 Web.config

    FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法

    解压 FreeTextBox 3.1.6 (2007/10/17) 作者网站下载地址:http://freetextbox.com/download/ 详细版本有哪些改进和修改历史可以看这里:http://freetextbox.com/download/changelog.aspx FreeTextBox 3.1.6 (2006/07...

    Little ASP.NET Core Book

    关于ASP.NET Core 2.0的一本小书。 The Little ASP.NET Core Book is structured as a tutorial. You'll build a to-do app from start to finish and learn: The basics of the MVC (Model-View-Controller) ...

    asp.net 后台管理系统

    备注:本系统采用ASP.NET 2.O+ACCESS开发,请调试的朋友安装.NET2.0运行环境! 网站内容 网站栏目包括 首页|企业简介|新闻中心|产品展示|公司展示|销售网络|联系我们|客户系统|人才管理|客户留言 后台模块有:...

    在ASP.NET 2.0中操作数据之六十九:处理Computed Columns列

    虽然我们可以在一个web页面或其它什么界面里计算每笔服务的费用(也就是 比率 rate乘以时间段duration),不过我们也可以手动向ServiceLog表添加一个 AmountDue列以反映该信息.我们可以将该列创建为一个普通列,只是...

    NLog.Web:适用于ASP.NET和ASP.NET Core 1-5的NLog集成

    NLog.Web(ASP.NET和ASP.NET Core) 这些软件包是扩展。 这些软件包包含特定于ASP.NET(核心),MVC和IIS的目标和布局渲染。 NLog入门 ASP.NET Core 2入门 ... 对于ASP.NET Core 2,.NET Standard 2.0+和.NET 4.6+

Global site tag (gtag.js) - Google Analytics