早就想了解下log4net这个组件的使用,直至今日才有时间学习了一下,现在把学习的新的总结如下:

(1)、在项目中添加log4net.dll引用。说明:该版本是1.2.10.0 ,log4net for .net framework2.0

(2)、在Web.Config文件中添加如下配置代码:

............

<!--log4net配置 BEGIN-->
  <configSections>
       <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <!---日志记录器,可以有一个,也可以有多个-->
  <log4net>
    <logger name="AppLogger1">
      <level value="INFO"></level>
      <appender-ref ref="LogFileAppender"></appender-ref>
    </logger>
    <logger name="AppLogger2">
      <level value="DEBUG"></level>
      <appender-ref ref="rollingFile"></appender-ref>
    </logger>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="SysLog/ErrorLog.txt"/>
      <param name="AppendToFile" value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="----------Start---------- "/>
        <param name="Footer" value="----------End---------- "/>
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG"/>
        <param name="LevelMax" value="FATAL"/>
      </filter>
    </appender>
    <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="----------Start---------- "/>
        <param name="Footer" value="----------End---------- "/>
      </Layout>
    </appender>
  </log4net>
  <!--log4net配置 END-->

..................

(3)、在项目中添加一个Global.asax(全局应用程序类),在Application_Start()方法中添加如下一行代码:

void Application_Start(object sender, EventArgs e) 
    {
        // 在应用程序启动时运行的代码
        log4net.Config.XmlConfigurator.Configure();

}

(4)、按(2)步骤中红色部分标注,在项目根目录下,创建一个SysLog的文件夹,里面增加一个ErrorLog.txt的文本文件,用于记录错误日志的详细信息。

(5)、在Web.Config文件中添加数据库连接字符串的配置代码:(这里用到的MSSQL2000数据库,这里可以根据需要进行修改设置)

<appSettings>
    <add key="ConnectionString" value="Data Source=.;uid=sa;pwd=;Database=master"/>
  </appSettings>

(6)、这里只举简单例子作简单说明:

如在Default .aspx.cs文件中

1)、首先添加using System.Data.SqlClient;的命名空间引用。

2)、protected void Page_Load(object sender, EventArgs e)
              {
                    try
                   {
                            string conString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString1"];
                            SqlConnection con = new SqlConnection(conString);
                            con.Open();

Response.Write("<script language=JavaScript>alert('数据库连接成功!')</script>");

                   }
                   catch (Exception ex)
                   {
                            Response.Write("<script language=javascript>alert('数据库连接失败!')</script>");
                            log4net.ILog log = log4net.LogManager.GetLogger("AppLogger1");
                            log.Info("数据库连接失败,具体原因如下:", ex);
                   }
              }

这里的红色标记部分在Web.Config文件中配置的名称为ConnectionString,由于连接字符串书写错误,造成错误,这样的错误就在ErrorLog.txt文件中记录下来了。以下是摘自其中的日志信息。

----------Start----------
2009-10-14 10:21:54,093 [4] INFO  AppLogger1 [(null)] (null) - 数据库连接失败,具体原因如下:
System.InvalidOperationException: ConnectionString 属性尚未初始化。
   在 System.Data.SqlClient.SqlConnection.PermissionDemand()
   在 System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.SqlClient.SqlConnection.Open()
   在 _Default.Page_Load(Object sender, EventArgs e) 位置 j:/asp.net3.5/log4net/Default.aspx.cs:行号 21
----------End----------

log4net日志功能使用的更多相关文章

  1. 如何在通用权限管理系统中集成log4net日志功能

    开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...

  2. 如何为Windows服务增加Log4net和EventLog的日志功能。

    一.简介 最近在做一个项目的时候,需要该项目自动启动.自动运行,不需要认为干预.不用说,大家都知道用什么技术,那就是 Windows服务.在以前的Net Framework 平台下,Windows 服 ...

  3. MVC4.0 利用HandleErrorAttribute和log4net实现记录异常日志功能

    1.MVC4.0中HandleErrorAttribte已经帮我们处理了异常问题,当我们新建一个非空的MVC项目时候,在FilterConfig中会发现这样的代码 public class Filte ...

  4. net core Webapi基础工程搭建(四)——日志功能log4net

    目录 前言 log4net 依然是,NuGet引用第三方类库 整合LogUtil 小结 前言 一个完整的项目工程离不开日志文件的记录,而记录文件的方法也有很多,可以自己通过Stream去实现文件的读写 ...

  5. .NET跨平台之旅:增加文件日志功能遇到的挫折

    在将我们的ASP.NET 5示例站点(about.cnblogs.com)升级至ASP.NET 5 RC1的时候,我们增加了控制台日志功能. 在ASP.NET 5添加日志功能很简单,只需在projec ...

  6. LOG4NET日志配置及使用

    Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...

  7. [.Net MVC] 使用 log4net 日志框架

    项目:后台管理平台 意义:项目开发中提出增加日志功能,对关键的操作.程序运行中的错误信息进行记录,这对程序部署后的调试有很大意义. 注:本文只是对网上搜集的信息进行了整合,以备今后查询. 关键字:.N ...

  8. log4net日志的配置及简单应用

    在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率.而本菜鸟在大神推荐和指导下使用log4net这一插件工 ...

  9. (译)Windsor入门教程---第五部分 添加日志功能

    介绍     现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能.我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能. L ...

随机推荐

  1. Maven学习总结(四)——Maven核心概念——转载

    一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 ver ...

  2. 详解Bootstrap导航组件

    在bootstrap框架中将导航独立出来成为一个导航组件,根据不同的版本,可以找到相应的源码: LESS:  navs.less SASS:  _navs.scss 标签形导航,也称选项卡导航 标签形 ...

  3. Delphi XE8,C++ Builder XE8,RAD Studio XE8 官方 ISO 文件下载,附激活工具

    RAD Studio XE8 v22.0.19027.8951 官方ISO下载(6.72G):http://altd.embarcadero.com/download/radstudio/xe8/de ...

  4. Directx11教程(14) D3D11管线(2)

    下面我们来了解一些GPU memory的知识,主要参考资料:http://fgiesen.wordpress.com/0211/07/02/a-trip-through-the-graphics-pi ...

  5. quartzScheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak解决

    01-Jul-2016 07:24:20.218 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 80 ...

  6. 深入学习golang(4)—new与make

    Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives).对于初学者,这两者的区别也挺容易让人迷糊的.简单的说,new只分配内存,make用于slic ...

  7. MySQL vs. MongoDB: Choosing a Data Management Solution

    原文地址:http://www.javacodegeeks.com/2015/07/mysql-vs-mongodb.html 1. Introduction It would be fair to ...

  8. Chapter 5. Graph Theory:: Fundamentals:: Intermediate

    10457 - Magic Car 题意一开始看起来有点费解,其实最后就是要起点到终点的路径上最大边与最小边之差越小越好.这样我们可以先将边排个序,然后枚举路径上的最小边,之后依次将比它大的边按升序的 ...

  9. [LeetCode] Find Median from Data Stream

    Find Median from Data Stream Median is the middle value in an ordered integer list. If the size of t ...

  10. crontab使用方法和示例

    crond是linux中的一个定时任务常驻程序,它会在每分钟检查一次作业列表,从而达到在指定时间自动运行指定的作业,这个程序对于系统运维来讲必不可少. 通常我们使用crontab程序来设定和管理作业的 ...