`
love19820823
  • 浏览: 935353 次
文章分类
社区版块
存档分类
最新评论

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:/log4net/log4netfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd HH:mm:ss" />
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<footer value="Write by Anders" />
<!--输出格式-->
<!--样例:2009-08-03 12:12:12,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数据库中,数据库为D:/log4net/的log4net.mdb-->
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
<!--mdb文件路径为【D:/log4net/log4net.mdb.mdb】-->
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/log4net/log4net.mdb;User Id=;Password=;" />
<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.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记录日志
/// </summary>
public class MainClass
{
public static void Main(string[] args)
{
try
{
Console.WriteLine("实例代码开始执行......");

//创建日志记录组件实例
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();

}
catch (Exception ex)
{
Console.WriteLine("出错信息为:" + ex.Message);

Console.Read();
}
}
}
}

——————————————————————————

原文地址为:http://blog.csdn.net/zhoufoxcn/archive/2008/03/26/2220533.aspx

分享到:
评论

相关推荐

    log4net使用实例

    “log4net”插件,附赠源码,可直接执行执行文件loghelper 插入4.0以上框架的c#项目中直接调用即可

    WinForm Log4Net 配置和使用实例

    WinForm Log4Net 配置和使用实例,完整的实例。有注释和说明。新手完全能看懂。

    使用Log4net发送日志邮件实例

    使用Log4net发送日志邮件实例

    log4net使用详细和源码实例

    在网上道听途说知道有log4net这个组件于是去学习,但是从来没有做过的我很是费了周折,但同时也走了非常多的弯路,为了不让大家和我一样痛苦、重蹈覆辙,通过网上的资料和自己的其的扩张,为迷途中的同胞们总结了这...

    Log4Cpp使用实例

    自己编译好的log4cpp的DLL 和 LIB 封装了一个使用类,从本地读取配置log级别等信息,可输出多个种类的日志文件,输出示例如下 [2017-02-20 16:09:51.910](NOTICE)Sys : 进入了CPfy_log4cppDlg::OnBnClickedButton1...

    log4net多种配置方式代码实例

    用实例的方式研究了log4net的配置代码和效果。具有一定的代码和配置文件的参考价值。

    log4j多个简单实例

    log4j实例log4j实例log4j实例log4j实例log4j实例log4j实例

    log4net代码实例模板

    log4net配置,案例模板,日志记录,代码实例,功能样式 log4net配置,案例模板,日志记录,代码实例,功能样式 log4net配置,案例模板,日志记录,代码实例,功能样式

    C#-log4net使用实例

    C#-log4net使用实例

    Log4Net自带配置文件实例讲解

    Log4Net自带配置文件实例讲解

    Log4net实例

    基于C# 。 log4net 的简单例子, 包括存数据库, 包括自定义字段,日志格式,日志路径,等。 部分代码参考了网络上的。

    Log4j使用实例

    详细介绍Log4j使用实例

    log4net网站项目应用实例

    log4net在网站项目中简单应用实例!!!

    log4net写入sql server数据库实例

    通过log4net在mvc 框架下,将日志写入sql server数据库实例. 例子可直接执行。

    log4net示例源代码

    log4net示例源代码,Log4net介绍就不多说,这里说下他的特点: 1.程序中如果加入了Log输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。 2.日志信息可以输出到不同的地方(文件中,控制台中,Windows...

    log4j(实例代码+文档)

    log4j的实例代码+文档 很轻松上手log4j

    Log4Net使用指南

    Log4Net使用指南 声明:本文内容主要译自Nauman Leghari的Using log4net,亦加入了个人的一点心得(节3.1.4)。 请在这里下载示例代码 1 简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试...

    Log4net详细说明使用

    本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动...

    Log4Net使用示例代码(带注释)

    同时示例了采用自定义config文件配置的方式进行log4Net相关的配置,避免直接配置在web.config文件中造成修改后,系统重新启动. 另外.通过一个LogHelper辅助类,在系统任意地方加以调用,方便写入日志. 本示例,对于希望在...

    log4net使用代码配置,实现动态文件打印

    通过使用代码配置,利用log4net根据文件名称,实现动态打印效果。特别适合在多模块环境中,不同的类模块打印输出到不同的文件中。

Global site tag (gtag.js) - Google Analytics