`
qzriso
  • 浏览: 242901 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

log4net使用详解

    博客分类:
  • c#
 
阅读更多

说明:本程序演示如何利用log4net记录程序日志信息。log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。要想获取最新版本的log4net组件库,可以到官方网站http://logging.apache.org/log4net/下载。现在的最新版本是1.2.10。

下面的例子展示了如何利用log4net记录日志 。

首先从官方网站下载最近版本的log4net组件,现在的最新版本是1.2.10。在程序中我们只需要log4net.dll文件就行了,添加对log4net.dll的引用,就可以在程序中使用了。

接着我们配置相关的配置文件(WinForm对应的是*.exe.config,WebForm对应的是*.config),本实例中是控制台应用程序,配置如下(附各配置的说明):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<configSections>
    
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  
</configSections>
  
<appSettings>
  
</appSettings>
  
<log4net>
    
<!--定义输出到文件中-->
    
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      
<!--定义文件存放位置-->
      
<file value="D:/log4netfile.txt" />
      
<appendToFile value="true" />
      
<rollingStyle value="Date" />
      
<datePattern value="yyyyMMdd-HH:mm:ss" />
      
<layout type="log4net.Layout.PatternLayout">
        
<!--每条日志末尾的文字说明-->
        
<footer value="by 周公" />
        
<!--输出格式-->
        
<!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        
<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
      
</layout>
    
</appender>
    
<!--定义输出到控制台命令行中-->
    
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      
<layout type="log4net.Layout.PatternLayout">
        
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      
</layout>
    
</appender>
    
<!--定义输出到windows事件中-->
    
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      
<layout type="log4net.Layout.PatternLayout">
        
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      
</layout>
    
</appender>
    
<!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
    
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
      
<commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
      
<!--定义各个参数-->
      
<parameter>
        
<parameterName value="@logDate" />
        
<dbType value="String" />
        
<size value="240" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%date" />
        
</layout>
      
</parameter>
      
<parameter>
        
<parameterName value="@thread" />
        
<dbType value="String" />
        
<size value="240" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%thread" />
        
</layout>
      
</parameter>
      
<parameter>
        
<parameterName value="@logLevel" />
        
<dbType value="String" />
        
<size value="240" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%level" />
        
</layout>
      
</parameter>
      
<parameter>
        
<parameterName value="@logger" />
        
<dbType value="String" />
        
<size value="240" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%logger" />
        
</layout>
      
</parameter>
      
<parameter>
        
<parameterName value="@message" />
        
<dbType value="String" />
        
<size value="240" />
        
<layout type="log4net.Layout.PatternLayout">
          
<conversionPattern value="%message" />
        
</layout>
      
</parameter>
    
</appender>
    
<!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    
<root>
      
<!--文件形式记录日志-->
      
<appender-ref ref="LogFileAppender" />
      
<!--控制台控制显示日志-->
      
<appender-ref ref="ConsoleAppender" />
      
<!--Windows事件日志-->
      
<appender-ref ref="EventLogAppender" />
      
<!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
      <appender-ref ref="AdoNetAppender_Access" />
      
-->
    
</root>
    
  
</log4net>
</configuration>

程序文件:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using log4net;

//注意下面的语句一定要加上,指定log4net使用.config文件来读取配置信息
//如果是WinForm(假定程序为MyDemo.exe,则需要一个MyDemo.exe.config文件)
//如果是WebForm,则从web.config中读取相关信息
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4NetDemo
{
    
/// <summary>
    
/// 说明:本程序演示如何利用log4net记录程序日志信息。log4net是一个功能著名的开源日志记录组件。
    
/// 利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库中(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)。
    
/// 下面的例子展示了如何利用log4net记录日志
    
/// 作者:周公
    
/// 时间:2008-3-26
    
/// 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2008/03/26/2220533.aspx
    
/// </summary>
    public class MainClass
    {
        
public static void Main(string[] args)
        {
            
//Application.Run(new MainForm());
            
//创建日志记录组件实例
            ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            
//记录错误日志
            log.Error("error",new Exception("发生了一个异常"));
            
//记录严重错误
            log.Fatal("fatal",new Exception("发生了一个致命错误"));
            
//记录一般信息
            log.Info("info");
            
//记录调试信息
            log.Debug("debug");
            
//记录警告信息
            log.Warn("warn");
            Console.WriteLine(
"日志记录完毕。");
            Console.Read();
        }
    }
}

运行结果:

控制台上的输出


日志文件内容

 

在这里需要特别说明一下,注意上面的代码中有这么一句:[assembly: log4net.Config.XmlConfigurator(Watch = true)](在需要使用log4net的类的namespace处),如果没有这句就会在调试时得到如下留言中所说的“程序调试起来时isDebugEnable"的情况,希望大家注意。 

分享到:
评论

相关推荐

    log4net使用详细解释

    - 在代码中,通过`log4net`的API初始化并使用日志记录器。 - 使用`Logger`类的`Fatal()`, `Error()`, `Warn()`, `Info()`, `Debug()`等方法记录不同级别的日志信息。 6. **配置动态加载**: - log4net支持在运行...

    log4net配置详解

    log4net的配置详解涉及Logger的结构、日志级别、配置以及使用方法。通过灵活的配置,开发者可以实现日志的定制化记录,从而更好地监控和诊断应用程序的运行状态。正确配置和使用log4net对于提升应用的可维护性和问题...

    log4net的配置详解

    **log4net配置详解** 在C#开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态、定位错误和异常,以及进行性能分析。log4net是Apache的一个开源项目,提供了一种灵活且可扩展的日志记录框架,广泛...

    C# Log4Net 使用例子代码

    **C# Log4Net 使用详解** 在C#开发过程中,日志记录是不可或缺的一个环节,它可以帮助开发者追踪程序运行状态,定位错误,便于后期维护。Log4Net是Apache组织提供的一款强大、灵活的日志框架,它支持多种日志输出...

    Log4net使用的测试用例

    **Log4net 使用详解** **一、什么是Log4net** Log4net是.NET平台上的一款开源日志记录框架,由Apache软件基金会开发,广泛应用于各种.NET应用程序中。它提供了灵活的日志记录配置,允许开发者在运行时调整日志级别...

    log4Net.dll+使用详解

    在使用log4net之前,首先需要将其添加到项目中。这可以通过NuGet包管理器完成,搜索"Log4Net"并安装。安装完成后,需要在项目的配置文件(如Web.config或App.config)中引入log4net的配置元素。 **2. 配置log4net**...

    log4net配置详细图解+Demo

    4. **使用方法**:在代码中,通过静态类`log4net.LogManager`获取Logger实例,然后调用相应的方法记录日志,如: ```csharp private static readonly ILog log = LogManager.GetLogger(typeof(MyClass)); log....

    Log4net使用

    **Log4net 使用详解** Log4net 是一个广泛使用的开源日志记录框架,适用于.NET Framework。它为应用程序提供了灵活的日志记录解决方案,支持多种输出格式,包括文件、控制台、数据库等。Log4net 提供了强大的配置...

    log4net使用例子

    **log4net 使用详解** `log4net` 是一个开源的日志记录框架,广泛应用于.NET平台,它提供了灵活且强大的日志记录功能。这个“log4net使用例子”旨在通过简单易懂的方式介绍如何在Webform和Winform项目中集成并使用...

    Log4net详细说明使用

    在Visual Studio 2008中使用Log4net,首先要引入log4net.dll的引用。这可以通过在项目中添加外部引用来完成,确保引用的是1.2.10.0或更高版本。为了在程序启动时初始化log4net配置,需要在相应入口点调用`log4...

    log4net使用说明

    **log4net 使用详解** log4net 是一个广泛使用的开源日志记录框架,适用于.NET环境,它提供了强大的日志管理和输出功能。以下是对log4net使用步骤和配置的详细说明: 1. **引用log4net.dll**: 首先,你需要在你的...

    log4net使用43

    ### Log4net 使用详解 #### 一、简介 Log4net是Apache下的一个开源项目,作为.NET平台上的日志框架,它提供了强大的日志管理功能。最初,它是Java平台上log4j项目的.NET移植版本,随着时间的发展,log4net已经成为...

    详解log4net的使用

    程序中只需要引用log4net.dll文件即可 配置的引用 log4net.Config.XmlConfigurator.Configure(); 首先添加以上代码。 CS程序:在Main方法中添加; BS程序:Application_Start方法中添加; 或是两者都可以在...

    log4net个人学习示例 vs2010

    1. **Log4Net使用详解.doc**:可能包含了log4net的详细功能介绍,包括如何配置不同的日志输出目标,如何自定义日志格式,以及如何处理多线程环境下的日志记录。 2. **log4net使用手册.doc**:这份手册应该提供了log4...

    log4net的使用

    **log4net 使用详解** log4net 是一个广泛使用的开源日志记录框架,适用于.NET Framework。它提供了灵活的日志记录机制,便于调试、监控和排查应用程序的问题。在本文中,我们将深入探讨log4net的配置、属性分析...

    Log4Net自带配置文件实例讲解

    Log4Net是一款广泛使用的日志记录框架,它允许开发者在.NET应用程序中轻松地记录调试信息、错误信息和其他日志事件。在本实例中,我们将详细解释如何使用Log4Net自带的配置文件进行设置。 首先,我们需要创建一个新...

    Log4Net 各种情况的代码实现+Log4Net.dll+文档详解.rar

    6. **文档详解**:随压缩包提供的详细解释文档会涵盖Log4Net的各个方面,包括配置、使用示例、API参考等,是理解和使用Log4Net的重要资源。 总的来说,Log4Net为.NET开发人员提供了一套强大的日志解决方案,通过...

Global site tag (gtag.js) - Google Analytics