- 浏览: 95976 次
- 性别:
- 来自: 南京
文章分类
最新评论
一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 644一、什么是Web部件 目前 ... -
创建一个简单的WebPart应用示例
2007-08-05 12:53 663创建WebPart的简单应用并不困难,在创建WebPart简单 ... -
创建自定义的WebPart
2007-08-05 12:57 659创建一个自定义的WebPart控件类似与创建自定义服务器控件, ... -
实现WebPart编辑功能
2007-08-05 12:58 734实现WebPart的编辑功能需要用到VS2005提供的Edit ... -
实现WebPart管理功能
2007-08-05 13:00 629实现WebPart管理功能需要用到CatalogZone、De ... -
实现WebPart通信功能
2007-08-05 13:02 683在一个页面中的WebPart控件之间是相互独立的,依赖与它的通 ... -
打包并自动安装SQL数据库
2007-08-05 13:04 539NET平台下WEB应用程序的 ... -
官方水晶报表.NET 应用程序实例下载(C#、Visual C++.NET)
2007-08-05 13:10 573一、数据库连通性 1、cs ... -
Windows mobile Install the Tools
2007-08-23 17:39 548Install Visual Studio 2005 ... -
Windows Mobile中的WebService应用
2007-09-07 15:03 597Web Service对于开发者来说已经不再是一个陌生概念了。 ... -
C#中对文件夹及文件信息的操作
2007-09-10 14:10 499C#中如何判断指定文件或文件夹是否存在? using Sy ... -
DataBinder.Eval用法收集
2007-09-24 17:24 563一、DataBinder.Eval的基本格式 在绑定数据 ... -
使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据
2007-09-25 10:15 747绑定到父表 <script type=&quo ... -
水晶报表中动态加载报表字段
2007-10-08 10:01 838usingSystem;usingSystem.Col ... -
HashMap和Hashtable及HashSet的区别
2008-04-10 12:10 543Hashtable类 Hashtable继承Map接口,实 ...
相关推荐
简介基于浏览器端的console的日志记录组件。支持如下特性:日志级别设置;异常提交到服务器;提交环境信息;日志Tag过滤器;如何使用浏览器下的引用[removed][removed][removed] log4web.log("houyhea"); log4...
Log4net日志记录组件-学习心得,例子 ,Log4net日志记录组件-学习心得,例子
log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统...
使用log4net组件进行错误日志的记录。使用文本形式记录,直接可以放到项目中用,此代码有详细的注释,
// Description: pb日志组件,把log4pb.pbd, callback.pbd加入到开发的libary列表中 // 1. log4pb调用演示例子, 思想仿log4j // 2. 集成对象到application, // 3. 组件文件: log4pb90.pdb + callback.pbd, // 4. ...
log4net+VS2013,实现了往文本文件和sqlserver里附着记录,库表可以参照log4net.config里的语句自己建,建议看代码之前先了解log4net组件的使用原理。
本压缩包内附带log4j-1.2.14和commons-logging-1.1.1,Java日志记录行业标准组件。不要分啦。鄙视开源组件还收费的猥琐鬼。
基于labview的日志记录,就是记录labview软件在运行过程当中人为的进行了哪些操作,将这些操作记录下来形成文件。
【下载之后请将rar改为zip格式。】 log4net是apache组织开发的日志组件, 同其姐妹log4j一样, 是一个开源项目. 可以以插件的形式应用在你的系统中
log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制...
log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统...
.NET日志记录组件
日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录。 Log4j是Apache基金会的一个项 目,Log4j是一个基于Java的日志组件,Log4j是Java的几个日志框架中的一种。
Log4net 是基于.net开发的一款非常著名的记录日志开源组件。它最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个 非常著名的姐妹组件-log4j。Log4net记录日志的功能非常强大。它可以将日志分...
log4net.dll是著名的Apache软件为.NET Framework 2框架准备的支持库,Log4net日志记录组件。
Log4Net 相信大家都很熟悉了,算是比较主流和著名的日志组件了。 官网: logging.apache.org 开源地址: https://github.com/apache/logging-log4net 最佳实践 在项目中添加组件包 Install-Package log4net 添加 ...
log4net.dll是著名的Apache软件为.NET Framework 2框架准备的支持库,Log4net日志记录组件。
Log4J的组件 Log4j有三个主要的组件,分别是loggers,appenders和layouts.这三种类型的部件工作在一起就能允许开发者根据记录信息的类型和级别来记录日志信息,并且在系统运行时能够按照不同的格式将这三类信息存储在...
开发过程中不可缺少的日志记录组件,相同java中的log4j,有需要的可分析一下
强大的log4net日志记录工具组件,压缩包包含net1.0-4.0版本! 使用方法参考: http://blog.csdn.net/zhoufoxcn/article/details/2220533