- 浏览: 103403 次
- 性别:
- 来自: 南京
文章分类
最新评论
一Log4net简介
Log4net是基于.net开发的一款非常著名的记录日志开源组件。他最早是2001年7月由NeoWorksLimited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件-log4j。Log4net记录日志的功能非常强大。它可以将日志分不同的等级,比不同的样式,将日志输出到不同的媒介。
Log4net可以从http://logging.apache.org/log4net/downloads.html网站下载最新版本。
二Log4net核心组成
Log4net主要由五个部分组成,分别为Logger,Appenders,Filters,Layouts和ObjectRenders。
一)Logger(日志)
1.记录日志的分类:
Log4net能够以多种方式输出日志。支持的日志输出常用的主要媒介有数据库(包括MSSQLServer,Access,Oracle9i,Oracle8i,DB2,SQLite,控制台,文件,事件日志(可以用事件查看器查看)和邮件等多种方式。
2.日志的级别
Log4net支持多种级别的日志。优先级从高到低依次排列如下:
FATAL>ERROR>WARN>INFO>DEBUG
此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。
二)Appenders
Appenders决定日志输出的方式。
Appenders必须实现log4net.Appenders.IAppender接口。
Log4net目前支持的输出方式包括:
1AdoNetAppender
将日志记录到数据库中。可以采用SQL和存储过程两种方式。
2AnsiColorTerminalAppender
在ANSI窗口终端写下高亮度的日志事件。
3AspNetTraceAppender
能用asp.net中Trace的方式查看记录的日志。
4BufferingForwardingAppender
在输出到子Appenders之前先缓存日志事件。
5ConsoleAppender
将日志输出到控制台。
6EventLogAppender
将日志写到WindowsEventLog.
7FileAppender
将日志写到文件中。
8LocalSyslogAppender
将日志写到localsyslogservice(仅用于UNIX环境下).
9MemoryAppender
将日志存到内存缓冲区。
10NetSendAppender
将日志输出到WindowsMessengerservice.这些日志信息将在用户终端的对话框中显示。
11RemoteSyslogAppender
通过UDP网络协议将日志写到Remotesyslogservice。
12RemotingAppender
通过.NETRemoting将日志写到远程接收端。
13RollingFileAppender
将日志以回滚文件的形式写到文件中。
14SmtpAppender
将日志写到邮件中。
15TraceAppender
将日志写到.NETtrace系统。
16UdpAppender
将日志connectionlessUDPdatagrams的形式送到远程宿主或以UdpClient的形式广播。
三)Filters
Appender对象将日志以缺省的方式传到输出流,然后Filter可以按照不同的标准控制日志的输出。Filter可以再配置文件中配置。最简单的形式是在appender中写明一个Threshold.这样只有级别大于或等于此Threshold的日志才被记录。
Filters必须实现log4net.Filters.IFilter接口。
四)Layouts
Layouts控制日志显示的格式样式。日志的显示格式如下:
"%timestamp[%thread]%-5level%logger-%message%newline"
Timestamp:表示程序已经开始执行的时间。单位[毫秒]。
Thread:执行当前代码的线程。
Level:日志的级别。
Logger:日志相关请求的名称。
Message: 日志消息。
Layouts还可以控制日志的输出样式,比如以普通形式或以xml等形式输出。
五)ObjectRenderers
这是很重要的一项,log4net将按照用户定义的标准输出日志消息。
ObjectRenders必须实现log4net.ObjectRenderer.IObjectRenerer接口。
三如何在项目中使用log4net
下面有个基于控制台的demo,举例描述了log4net怎么用于输出日志。
本例中,日志将会记录到文件,控制台,事件日至和Access数据库中。
一)主要代码:
1.配置文件app.config
1<?xmlversion="1.0"encoding="utf-8"?>
2<configuration>
3<!--Registerasectionhandlerforthelog4netsection-->
4<configSections>
5<sectionname="log4net"type="System.Configuration.IgnoreSectionHandler"/>
6</configSections>
7<appSettings>
8<!--Toenableinternallog4netloggingspecifythefollowingappSettingskey-->
9<!--<addkey="log4net.Internal.Debug"value="true"/>--></appSettings>
10<!--Thissectioncontainsthelog4netconfigurationsettings-->
11<log4net>
12<!--定义输出到文件中-->
13<appendername="LogFileAppender"type="log4net.Appender.FileAppender">
14<!--定义文件存放位置-->
15<filevalue="D:/log-file1.txt"/>
16<!--Exampleusingenvironmentvariablesinparams-->
17<!--<filevalue="${TMP}/log-file.txt"/>-->
18<!--<sppendToFilevalue="true"/>-->
19<!--Analternateoutputencodingcanbespecified-->
20<!--<encodingvalue="unicodeFFFE"/>-->
21<layouttype="log4net.Layout.PatternLayout">
22<!--每条日志末尾的文字说明-->
23<footervalue="[Footer]--TestByRing1981"/>
24<!--输出格式-->
25<conversionPatternvalue="%date[%thread]%-5level%logger[%ndc]<%property{auth}>-%message%newline"/>
26</layout>
27</appender>
28<!--定义输出到控制台命令行中-->
29<appendername="ConsoleAppender"type="log4net.Appender.ConsoleAppender">
30<layouttype="log4net.Layout.PatternLayout">
31<conversionPatternvalue="%date[%thread]%-5level%logger[%property{NDC}]-%message%newline"/>
32</layout>
33</appender>
34<!--定义输出到windows事件中-->
35<appendername="EventLogAppender"type="log4net.Appender.EventLogAppender">
36<layouttype="log4net.Layout.PatternLayout">
37<conversionPatternvalue="%date[%thread]%-5level%logger[%property{NDC}]-%message%newline"/>
38</layout>
39</appender>
40<!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为D盘的access.mdb-->
41<appendername="AdoNetAppender_Access"type="log4net.Appender.AdoNetAppender">
42<connectionStringvalue="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:/access.mdb"/>
43<commandTextvalue="INSERTINTOLog([Date],[Thread],[Level],[Logger],[Message])VALUES(@log_date,@thread,@log_level,@logger,@message)"/>
44<!--定义各个参数-->
45<parameter>
46<parameterNamevalue="@log_date"/>
47<dbTypevalue="String"/>
48<sizevalue="255"/>
49<layouttype="log4net.Layout.PatternLayout">
50<conversionPatternvalue="%date"/>
51</layout>
52</parameter>
53<parameter>
54<parameterNamevalue="@thread"/>
55<dbTypevalue="String"/>
56<sizevalue="255"/>
57<layouttype="log4net.Layout.PatternLayout">
58<conversionPatternvalue="%thread"/>
59</layout>
60</parameter>
61<parameter>
62<parameterNamevalue="@log_level"/>
63<dbTypevalue="String"/>
64<sizevalue="50"/>
65<layouttype="log4net.Layout.PatternLayout">
66<conversionPatternvalue="%level"/>
67</layout>
68</parameter>
69<parameter>
70<parameterNamevalue="@logger"/>
71<dbTypevalue="String"/>
72<sizevalue="255"/>
73<layouttype="log4net.Layout.PatternLayout">
74<conversionPatternvalue="%logger"/>
75</layout>
76</parameter>
77<parameter>
78<parameterNamevalue="@message"/>
79<dbTypevalue="String"/>
80<sizevalue="1024"/>
81<layouttype="log4net.Layout.PatternLayout">
82<conversionPatternvalue="%message"/>
83</layout>
84</parameter>
85</appender>
86<!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
87<root>
88<appender-refref="LogFileAppender"/>
89<appender-refref="ConsoleAppender"/>
90<appender-refref="EventLogAppender"/>
91<appender-refref="AdoNetAppender_Access"/>
92</root>
93</log4net>
94</configuration>
2.LoggingExample.cs
1//Configurelog4netusingthe.configfile
2[assembly:log4net.Config.XmlConfigurator(Watch=true)]
3//Thiswillcauselog4nettolookforaconfigurationfile
4//calledConsoleApp.exe.configintheapplicationbase
5//directory(i.e.thedirectorycontainingConsoleApp.exe)
6
7namespaceConsoleApp
8{
9usingSystem;
10
11/**////<summary>
12///Exampleofhowtosimplyconfigureanduselog4net
13///</summary>
14publicclassLoggingExample
15{
16privatestaticreadonlylog4net.ILoglog=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
17
18publicstaticvoidMain(string[]args)
19{
20log.Error("ErrorAcc");
21log.Fatal("FatleAcc");
22System.Console.ReadLine();
23
24}
25
26}
27}
28
运行程序,日志就会以xml中定义的四种媒介形式输出。
发表评论
-
Webpart部件概述
2007-08-05 12:52 688一、什么是Web部件 目前 ... -
创建一个简单的WebPart应用示例
2007-08-05 12:53 703创建WebPart的简单应用并不困难,在创建WebPart简单 ... -
创建自定义的WebPart
2007-08-05 12:57 697创建一个自定义的WebPart控件类似与创建自定义服务器控件, ... -
实现WebPart编辑功能
2007-08-05 12:58 769实现WebPart的编辑功能需要用到VS2005提供的Edit ... -
实现WebPart管理功能
2007-08-05 13:00 662实现WebPart管理功能需要用到CatalogZone、De ... -
实现WebPart通信功能
2007-08-05 13:02 716在一个页面中的WebPart控件之间是相互独立的,依赖与它的通 ... -
打包并自动安装SQL数据库
2007-08-05 13:04 584NET平台下WEB应用程序的 ... -
官方水晶报表.NET 应用程序实例下载(C#、Visual C++.NET)
2007-08-05 13:10 616一、数据库连通性 1、cs ... -
Windows mobile Install the Tools
2007-08-23 17:39 577Install Visual Studio 2005 ... -
Windows Mobile中的WebService应用
2007-09-07 15:03 634Web Service对于开发者来说已经不再是一个陌生概念了。 ... -
C#中对文件夹及文件信息的操作
2007-09-10 14:10 536C#中如何判断指定文件或文件夹是否存在? using Sy ... -
DataBinder.Eval用法收集
2007-09-24 17:24 607一、DataBinder.Eval的基本格式 在绑定数据 ... -
使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据
2007-09-25 10:15 800绑定到父表 <script type=&quo ... -
水晶报表中动态加载报表字段
2007-10-08 10:01 874usingSystem;usingSystem.Col ... -
HashMap和Hashtable及HashSet的区别
2008-04-10 12:10 569Hashtable类 Hashtable继承Map接口,实 ...
相关推荐
Log4j提供了灵活的日志记录机制,允许开发者根据需求调整日志信息的级别、格式以及输出方式等。 ##### 1.1 日志级别 在Log4j中,日志信息可以分为以下五个级别: - **DEBUG**:用于调试信息,通常在开发阶段开启...
log4net是一个强大的、灵活的日志记录工具,由Apache软件基金会开发,广泛应用于.NET开发中,为开发者提供了丰富的日志记录功能,帮助调试和维护应用程序。 **log4net基本概念** 1. **组件介绍**:log4net是基于...
Log4net是Apache的一个开源项目,它是.NET平台上一个强大的日志记录工具,广泛应用于各种软件开发中,用于收集、管理和输出应用程序运行时的日志信息。系统日志则意味着这个Demo着重于如何在实际系统环境中应用Log4...
这个组件,被称为"Log4Net通用组件",是专门为.NET应用程序设计的,旨在帮助开发人员轻松地集成日志记录机制,以便在运行时追踪代码行为,调试问题,以及收集性能数据。 Log4Net的核心特性包括: 1. **配置灵活性*...
Log4net是Apache软件基金会的一个项目,它为.NET应用程序提供了强大的日志记录功能,具有灵活的配置和多种输出选项。 首先,我们要理解Log4net的基本概念。Log4net提供了一个编程接口,通过这个接口,我们可以在...
在“LOGO日志记录”中,"LOGO"可能是"Logging Object"的缩写,指的是LabVIEW中的一个专门用于日志记录的对象或类。这个对象可能封装了上述日志组件的所有功能,并提供了简洁的接口供开发者使用。 压缩包内的“log...
简介基于浏览器端的console的日志记录组件。支持如下特性:日志级别设置;异常提交到服务器;提交环境信息;日志Tag过滤器;如何使用浏览器下的引用[removed][removed][removed] log4web.log("houyhea"); log4...
// Description: pb日志组件,把log4pb.pbd, callback.pbd加入到开发的libary列表中 // 1. log4pb调用演示例子, 思想仿log4j // 2. 集成对象到application, // 3. 组件文件: log4pb90.pdb + callback.pbd, // 4. ...
Log4net是一款强大的日志记录组件,广泛应用于.NET框架下的应用程序中,为开发者提供了一种灵活、可配置的日志记录方案。它可以帮助我们追踪代码执行过程中的错误、调试信息和其他重要事件,便于后期分析和优化程序...
配置文件通常为XML格式,如`log4net.config`,它定义了日志记录的行为,如日志级别、输出目的地、布局模式等。用户可以根据项目需求调整这些设置,无需修改代码。 标签中的"日志类"表示这是一个关于C#日志记录的...
Log4net 是一个广泛使用的开源日志记录框架,由 Apache 软件基金会开发。它为 .NET 应用程序提供了强大的日志记录功能,支持多种输出方式,包括文件、控制台、数据库、SMTP 邮件等。在本文中,我们将深入探讨 Log4...
**log4net.dll** 是一个广泛使用的开源日志记录库,专门为.NET Framework设计,它为C#和其他.NET语言的应用程序提供了强大的日志记录功能。这个库由Apache软件基金会开发,是log4j(Java平台上的日志框架)的.NET...
而log4net就是.NET平台上一款强大的日志记录工具,由Apache软件基金会开发并维护,提供了一套灵活、高效且易于使用的API来实现应用程序的日志记录。 **一、log4net的功能特性** 1. **灵活性**:log4net支持多种...
Log4net是一个强大的开源日志记录组件,广泛应用于.NET框架中。它提供了丰富的日志管理功能,能够将日志信息按不同级别分类,并以多种格式输出到不同的目标,如文件、控制台、数据库等。使用Log4net可以方便地监控和...
log4j提供了丰富的功能,如灵活的日志级别控制(DEBUG、INFO、WARN、ERROR、FATAL)、自定义布局、多种输出目的地(控制台、文件、数据库等)、以及过滤器和异步日志记录。通过配置XML格式的log4j.properties文件,...
Log4Net 是一个流行的、开源的日志记录框架,由 Apache 软件基金会开发,主要用于.NET Framework 和 .NET Core 应用程序。这个框架提供了丰富的日志记录功能,允许开发者以灵活的方式控制应用程序中的日志输出。Log4...
Log4Qt是Qt框架下的一款日志记录库,它基于流行的Java日志库log4j设计,为C++开发者提供了一套强大、灵活的日志处理机制。本文将深入探讨Log4Qt日志管理的核心概念、功能特性以及如何在实际项目中有效应用。 一、...
6. **性能优化**:仿Log4j系统应考虑性能优化,例如延迟初始化(lazy initialization)只在首次使用时创建Logger,以及日志级别过滤,避免不必要的日志记录。 7. **线程安全**:由于多线程环境下的并发访问,日志...
本文将详细介绍log4net-1.2.15组件包的安装、配置以及如何在C#项目中进行使用。 **一、安装log4net组件包** 在开始使用log4net之前,首先需要将其添加到你的项目中。在旧版本的.NET环境中,可以通过下载log4...
log4net 是一个灵活的、高性能的日志记录框架,它可以方便地集成到各种 .NET 应用程序中,提供丰富的日志记录功能。它支持多种日志输出方式,如控制台、文件、数据库、SMTP 邮件等,且允许开发者自定义日志目标和...