log4Net技术大全

合集下载

Log4Net日志配置[附带源码下载]概要

Log4Net日志配置[附带源码下载]概要

Log4Net 日志配置[附带源码下载]这篇文章主要介绍了Log4Net 日志配置[附带源码下载],需要的朋友可以参考下前述园子里有许多人对log4net这款开源的日志记录控件有很多介绍。

在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间。

利用log4net 可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库,并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。

log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及Layout(布局). 准备工作:1.下载log4net.dll 下载地址[/log4net/download_log4net.cgi]下载文件:log4net-1.2.13-bin-newkey.zip。

解压选择对应的net版本找到log4net.dll。

2.在项目中引用log4net.dll。

实例代码准备工作完成后我们来看下实例代码,首先在项目中创建一个文件夹LogConfig。

把有关log4net的一些配置文件和类都放在这个文件夹里面。

配置文件写完后我们在来写一个Helper类。

同样在项目中创建一个名为LogHelper.cs的类文件。

配置和Helper类都有了..现在来看看调用方法。

在项目中创建一个index.aspx页面日志生成格式[每天一个文件]:Downloa d Apache log4net™Apache log4net is distributed under the Apache License, version 2.0.Starting with log4net 1.2.11 log4net is available as source only or binary only release.Users who download the ZIP files to Windows may need to unblock the archive (right click on the ZIP and press the "Unblock" button) before extracting it.Using a MirrorWe recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be available from the mirrors.You are currently using /. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available.Other mirrors: ChangeThe KEYS link links to the code signing keys used to sign the product. The PGP link downloads the OpenPGP compatible signature from our main site. The MD5 link downloads the checksum from the main site.log4net 1.2.15Sourcelog4net-1.2.15-src.zip md5 pgpBinariesThere are two different binary releases, oldkey and newkey. Both contain assemblies built for most supported platforms and have been built from the same code base, they only differ in the strong name key used to sign the assemblies.See the FAQ for background. We recommend you use the assemblies signed with the "new" key whenever possible.log4net-1.2.15-bin-newkey.zip md5 pgplog4net-1.2.15-bin-oldkey.zip md5 pgpArchivesRelease 1.2.11 and all more recent releases are available from the Apache Software Foundation's distribution archive.The 1.2.10 and 1.2.9 releases have been created while log4net was still undergoing incubation and those releases are available from the distribution archive for the Incubator project.Previous releases of log4net are available from the SourceForge Project Site.Verify ReleasesIt is essential that you verify the integrity of the downloaded files using the PGP signature or MD5 checksums. The checksums are not as strong indicators as the PGP signature.Please read Verifying Apache HTTP Server Releases for more information on why you should verify our releases. The PGP keys used to sign our distributions are part of the KEYS file.参数说明Log4Net.config是配置日志输出参数文件。

log4net使用手册

log4net使用手册

log4net使用手册C# 2009-10-28 11:59:05 阅读971 评论1 字号:大中小订阅1. log4net简介log4net是.Net下一个非常优秀的开源日志记录组件。

log4net记录日志的功能非常强大。

它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。

Java平台下,它还有一个姐妹组件——log4j。

log4net的下载地址:/log4net/download.html2. log4net的组成log4net主要由五部分组成,分别为Appenders、Filters、Layouts、Loggers和Object Renders。

2.1 AppendersAppenders用来定义日志的输出方式。

它还可以通过配置Filters和Layout来实现日志的过滤和输出格式。

它的输出方式有:1. AdoNetAppender 将日志记录到数据库中。

可以采用SQL和存储过程两种方式。

2. AnsiColorTerminalAppender 将日志高亮输出到ANSI终端。

3. AspNetTraceAppender 能用中Trace的方式查看记录的日志。

4. BufferingForwardingAppender 在输出到子Appenders之前先缓存日志事件。

5. ConsoleAppender 将日志输出到应用程序控制台。

6. EventLogAppender 将日志写到Windows Event Log。

7. FileAppender 将日志输出到文件。

8. ForwardingAppender 发送日志事件到子Appenders。

9. LocalSyslogAppender 将日志写到local syslog service (仅用于UNIX环境下)。

10. MemoryAppender 将日志存到内存缓冲区。

11. NetSendAppender 将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。

Log4Net

Log4Net

Log4net概述 Log4net的主要组成部分 配置文件详解 如何记录日志 探讨
第一步:在项目中添加对log4net.dll的引用,这里引用版本 是1.2.10.0。 第二步:程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添 加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个) 中的Application_Start方法中添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件 里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] PS:也可以使用自定义的配置文件

TelnetAppender 客户端通过Telnet来接受日志事件。 TraceAppender 将日志写到.NET trace 系统。 UdpAppender 将日志以无连接UDP数据报的形式送 到远程宿主或用UdpClient的形式广播。
Filters:使用过滤器可以过滤掉Appender输出的内容。 过滤器通常有以下几种: DenyAllFilter 阻止所有的日志事件被记录 LevelMatchFilter 只有指定等级的日志事件才被记 录 LevelRangeFilter 日志等级在指定范围内的事件才 被记录 LoggerMatchFilter 与Logger名称匹配,才记录 PropertyFilter 消息匹配指定的属性值时才被记录 StringMathFilter 消息匹配指定的字符串才被记录

.net下log4net使用方法详解

.net下log4net使用方法详解

.net下log4net使⽤⽅法详解本⽂实例为⼤家分享了.net下log4net的使⽤⽅法,供⼤家参考,具体内容如下这⾥以控制台应⽤程序为例⾸先是要添加引⽤:安装后可以看到项⽬中多了log4net的引⽤:添加应⽤程序配置⽂件app.config,配置log4net<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections><log4net><!-- Define some output appenders --><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><!--⽇志路径--><file value="test.txt"/><!--是否向⽂件中追加⽇志--><appendToFile value="true"/><!--⽇志保留天数--><maxSizeRollBackups value="10"/><!--每个⽂件的⼤⼩。

只在混合⽅式与⽂件⼤⼩⽅式下使⽤。

超出⼤⼩后在所有⽂件名后⾃动增加正整数重新命名,数字最⼤的最早写⼊。

可⽤的单位:KB|MB|GB。

ASP.NETMVC学习之Log4Net配置(日志记录)

ASP.NETMVC学习之Log4Net配置(日志记录)

MVC学习之Log4Net配置(⽇志记录)Log4Net配置笔记----⾸先,添加对log4net.dll的引⽤。

在Web.config⽂件下的Configuration节点下添加Log4Net的配置信息:1<!--Log4Net配置节点-->2<configSections>3<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>4</configSections>5<log4net>6<!-- Define some output appenders -->7<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">8<file value="log.txt"/>9<appendToFile value="true"/>10<maxSizeRollBackups value="10"/>11<maximumFileSize value="10240KB"/>12<rollingStyle value="Size"/>13<staticLogFileName value="true"/>14<layout type="yout.PatternLayout">15<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>16</layout>17</appender>18<root>19<level value="DEBUG"/>20<appender-ref ref="RollingLogFileAppender"/>21</root>22</log4net>23<!--Log4Net配置节点结束-->添加⼀个类MyExceptionFilterAttribute.cs:1public class MyExceptionFilterAttribute:HandleErrorAttribute2 {34public override void OnException(ExceptionContext filterContext)5 {6base.OnException(filterContext);78//处理错误消息。

【log4net】-日志使用教程

【log4net】-日志使用教程

log4net.Filter.PropertyFilter 匹配指定属性名称的子字符串。
log4net.Filter.StringMatchFilter 匹配事件消息的子字符串。
-->
<filter type="log4net.Filter.LevelRangeFilter">
<!-- 控制输出日志的级别范围 -->
<!-- 默认日志对象级别 --> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value="all" /> <!-- 默认日志记录方式 ref为<appender>节点的name属性--> <appender-ref ref="MyColoredConsoleAppender"/> <!--<appender-ref ref="MyRollingFileAppender"/>--> </root>
<!-- 设置不同级别控制台显示的不同颜色 -->
<mapping>
<level value="INFO" />
<foreColor value="Green" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />

log4net 教程


跟文章(一)比起来,我们的 App.config 文件现在就清爽多了
2.2 在文章(一)中,我们没有指定具体使用什么文件,Log4Net 自 动帮我们选择使用 app.config 文件了,现在我们有了自己的配置文件,自然需 要指 定一下使用哪一个配置文件,不能再让 Log4Net 帮我们自动选择了。我们 只需要在 AssemblyInfo.cs 文件中写一句话指定使用哪个配置文件即 可。
2、进行一些简单的配置,先不讲配置文件的作用,大家照我写的输入。下面代 码库的内容是在 App.config 文件中输入的,如果大家没有 App.config 文件, 可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加。
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"/>
先不分析上面这段配置信息是什么意思。我们先来回想一下我们的日志类通常 用来做什么,假设我们有一个库存管理系统,分为两大模块,一个是出库,一 个 是入库。我们可能想要出库的相关信息保存在某一个文件夹里面,入库的信 息存在另一个文件夹里面。这样,我们通常的做法是用在日志类中不同的路径 将日志写到 不同位置,但是如果我们不单单想要写到日志文件中,而且想要将 这些日志文件插入数据库呢?一般来讲,我们会再建立一些方法,来写到数据 库。另外,正常日志 信息和错误日志信息的布局,我们可能想要根据日志类型 的不同,改变信息的布局,比如错误日志里面有异常信息的记录,正常日志里 面就没有异常的记录。 总结地说,我们的日志类的需求通常就是:1、能够按要求将日志 写到不同的介质上(文件、数据库、邮件等);2、能够根据日志类型的不同, 写到不同的位置;3、能根据信息的类型,改变日志的布局。 不得不说,想要写好一个日志记录类还是挺不容易的的,看是简单 的需求要做好,也是需要下大工夫的。而这些在 Log4Net 中,只需要经过一些 配置,就可以完成。如果你懒得写配置信息,也可以直接将上面的配置信息拷 过去用。

log4net用法实例

log4net⽤法实例1.引⽤log4net.dll2.在AssemblyInfo.cs中添加初始化:[assembly: log4net.Config.XmlConfigurator(ConfigFile= "log4net.config", Watch = true)]3.添加配置⽂件,内容如下:<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections><log4net><root></root><logger name="OneCardRequest"><level value="INFO" /><appender-ref ref="rollingRequestFile" /></logger><logger name="OneCardResult"><level value="INFO" /><appender-ref ref="rollingResultFile" /></logger><logger name="OneCardException"><level value="ERROR" /><appender-ref ref="rollingExceptionFile" /></logger><logger name="InfoLog"><level value="ALL" /><appender-ref ref="rollingInfoFile" /></logger><appender name="rollingRequestFile" type="log4net.Appender.RollingFileAppender,log4net" > <param name="File" type="" value="Log/Request/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender><appender name="rollingResultFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" type="" value="Log/Result/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender><appender name="rollingExceptionFile" type="log4net.Appender.RollingFileAppender,log4net" > <param name="File" type="" value="Log/Exception/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender><appender name="rollingInfoFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" type="" value="Log/Info/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyyMMdd" /><param name="StaticLogFileName" value="false" /><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%n[%d] %c %n%m%n%n" /><param name="Header" value="-----------BEGIN-----------" /><param name="Footer" value="------------END------------" /></layout></appender></log4net></configuration>4.添加Log4netHelper类:public class log4netHelper{/// <summary>/// 追加⼀条⼀卡通处理异常⽇志信息/// </summary>/// <param name="id">请求ID</param>/// <param name="ex">异常</param>/// <param name="attachMessage">附加信息</param>public static void Exception(string id, Exception ex, string attachMessage){log4net.ILog log = log4net.LogManager.GetLogger("OneCardException");if (log.IsErrorEnabled){string strMessage = string.Format("RequestID:{0}\r\nMesssage:{1}\r\nStackTrace:{2}\r\nAttachMessage:{3}", id, ex.Message, ex.StackTrace, attachMessage);log.Error(strMessage);}log = null;}/// <summary>/// 追加⼀条⼀卡通请求⽇志信息/// </summary>/// <param name="id">请求ID</param>/// <param name="ip">请求的IP地址</param>/// <param name="datetime">时间</param>/// <param name="strParam">请求时传⼊的参数</param>public static void RequestLog(string id, string ip, string datetime, string strParam){log4net.ILog log = log4net.LogManager.GetLogger("OneCardRequest");if (log.IsInfoEnabled){string strMessage = string.Format("RequestID:{0}\r\nIP:{1}\r\nDateTime:{2}\r\nParam:{3}", id, ip, datetime, strParam);(strMessage);}log = null;}/// <summary>/// 追加⼀条⼀卡通处理结果⽇志/// </summary>/// <param name="id">请求ID</param>/// <param name="datetime">时间</param>/// <param name="strResult">处理结果</param>public static void ResultLog(string id, string datetime, string strResult){log4net.ILog log = log4net.LogManager.GetLogger("OneCardResult");if (log.IsInfoEnabled){string strMessage = string.Format("RequestID:{0}\r\nDateTime:{1}\r\nParam:{2}", id, datetime, strResult); (strMessage);}log = null;}/// <summary>/// 追加⼀条普通的⽇志信息/// </summary>/// <param name="message">⽇志内容</param>public static void Info(string message){log4net.ILog log = log4net.LogManager.GetLogger("InfoLog");if (log.IsInfoEnabled){(message);}log = null;}}。

Log4Net学习笔记

Log4Net学习笔记Log4Net学习笔记1. Log4Net环境的搭建与基本配置 (2)(1) Log4Net框架介绍 (2)(2) Log4Net的环境配置以及简单使⽤ (2) 2. Log4Net结构 (2)(1) Log4Net核⼼组件 (2)(2) Logger介绍 (2)(3) Appender介绍 (3)(4) Filter介绍 (3)(5) Layout介绍 (3)(6) Object Render介绍 (3)3. logger节点配置详解 (3)(1) logger节点配置 (3)(2) ⽇志级别等级 (3)(3) ILog对象说明 (3)(4) logger配置使⽤⽰例 (3)4. appender节点配置详解 (4)(1) appender节点配置 (4)(2) appender的输出⽅式(type属性) (4)(3) appender配置使⽤⽰例 (5)5. filter节点配置详解 (5)(1) filter节点配置 (5)(2) filter的类型说明 (5)(3) filter的⼯作原理 (5)(4) filter的使⽤⽰例 (6)6. Layout节点配置详解 (6)(1) layout节点配置 (6)(2) layout节点的type属性取值 (6)(3) PatterLayout的格式化字符串 (6)(4) PatterLayout格式修饰符 (7)(5) layout的使⽤⽰例 (7)7. 其它节点的说明与配置 (7)(1) param节点 (7)(2) root节点 (7)(3) log4net节点 (7)(4) configSections节点 (7)8. 配置⽂件 (7)(1) 配置⽂件结构图 (8)(2) 配置⽂件⽰例 (8)(3) 关联配置⽂件 (8)作者:李志伟时间:2014-05-101.Log4Net环境的搭建与基本配置(1)Log4Net框架介绍Log4net 是 Apache 下⼀个开放源码的项⽬,它是Log4j 的⼀个克隆版。

log4net使用方法及利用正则表达式提取日志信息

log4net使⽤⽅法及利⽤正则表达式提取⽇志信息 log4net是.Net下⼀个⾮常优秀的开源⽇志记录组件。

log4net记录⽇志的功能⾮常强⼤。

它可以将⽇志分不同的等级,以不同的格式,输出到不同的媒介,如利⽤log4net可以⽅便地将⽇志信息记录到⽂件、控制台、Windows事件⽇志和数据库(包括MS SQL Server, Access,Oracle9i,Oracle8i,DB2,SQLite)中。

可以记载的⽇志类别包括:FATAL(致命错误)、ERROR(⼀般错误)、WARN(警告)、INFO(⼀般信息)、DEBUG(调试信息)。

简单的控制台应⽤ 控制台应⽤程序实例展⽰如何⽤log4net记录⽇志,⾸先要在项⽬中添加对log4net.dll的引⽤,之后要配置相关的配置⽂件添加配置⽂件两种⽅法,⼀是在默认的App.config⽂件(没有新建⼀个)中添加内容,⼆是在输出⽬录添加相应配置⽂件(WinForm对应的是*.exe.config)。

配置⽂件<?xml version="1.0" encoding="utf-8"?><configuration><configSections><!--添加log4net⾃定义节点--><section name="log4net" type="System.Configuration.IgnoreSectionHandler"/></configSections><appSettings></appSettings><log4net><!--定义输出到⽂件中--><appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"><!--定义⽂件存放位置--><appendToFile value="true" /><rollingStyle value="Date" /><!--【1】指定存储到某个具体⽂件中--><!--<file value="D:/log4netfile.txt" /> <datePattern value="yyyy\\yyyyMM\\yyyyMMdd\\yyyyMMdd-HH'.txt'"/><datePattern value="yyyyMMdd-HH:mm:ss" />--><!--【2】指定存储到某个⽂件夹中,根据时间⽣成⽇志⽂件--><file value="log\\"/><datePattern value="yyyyMMdd-HH'.txt'"/><staticLogFileName value="false"/><param name="MaxSizeRollBackups" value="100"/><layout type="yout.PatternLayout"><!--每条⽇志末尾的⽂字说明--><footer value="by author" /><!--输出格式--><!--样例:2008-03-2613:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--><!--%n是换⾏--><conversionPattern value="%n记录时间:%date %n线程ID:[%thread] %n⽇志级别:%-5level %n出错类:%logger property:[%property{NDC}] - %n错误描述:%message%newline" /></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="WARN" /><levelMax value="FATAL" /></filter></appender><!--定义输出到控制台命令⾏中--><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="yout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /></layout></appender><!--定义⽇志的输出媒介--><root><!--控制要记载的⽇志级别--><level value="ERROR"/><level value="DEBUG"/><!--⽂件形式记录⽇志--><appender-ref ref="LogFileAppender" /><!--控制台控制显⽰⽇志--><appender-ref ref="ConsoleAppender" /><!-- 如果不启⽤相应的⽇志记录,可以通过这种⽅式注释掉<appender-ref ref="AdoNetAppender_Access" />--></root></log4net></configuration>Log4netConsole.exe.config辅助程序using System;using System.Collections.Generic;using System.Linq;using System.Text;//注意下⾯的语句⼀定要加上,指定log4net使⽤.config⽂件来读取配置信息//如果是WinForm(假定程序为LogDemo.exe,则需要⼀个LogDemo.exe.config⽂件)//如果是WebForm,则从web.config中读取相关信息[assembly: log4net.Config.XmlConfigurator(Watch = true)]namespace Log4netConsole{class Log4netHelper{public static void WriteLogger(Type type, LogLevel logLevel, string msg){log4net.ILog log = log4net.LogManager.GetLogger(type);switch (logLevel){case LogLevel.Debug: log.Debug(msg); break;case LogLevel.Error: log.Error(msg); break;case LogLevel.Fatal: log.Fatal(msg); break;case : (msg); break;case LogLevel.Warn: log.Warn(msg); break;default: break;}}}///<summary>///⽇志记录级别///</summary>public enum LogLevel{Debug,Info,Warn,Error,Fatal}}View Code主程序1using System;2using System.Collections.Generic;3using System.Text;4using System.Reflection;56namespace Log4netConsole7 {8class Program9 {10static void Main(string[] args)11 {12//返回:命名空间+类名,此处为Log4netConsole.Program,13//表⽰在哪个类中记录的⽇志,如果记录的错误⽇志表⽰在那个类中出错14 Type type = MethodBase.GetCurrentMethod().DeclaringType;15 Log4netHelper.WriteLogger(type, LogLevel.Error, "测试记录Error⽇志");16 Log4netHelper.WriteLogger(type, LogLevel.Debug, "测试记录Debug⽇志");1718 car car2 = new car("dongdong", 1);19 car2.drvie();2021 Console.ReadKey();22 }2324static void print()25 {26 Type type = MethodBase.GetCurrentMethod().DeclaringType;27 Log4netHelper.WriteLogger(type, LogLevel.Error, "测试记录print⽇志");28 Console.WriteLine("==============this is test lognet===============");29 car car1 = new car();30 car1.drvie();31 }32 }3334class car35 {36public string name;37public int ID;38public car(string na = "00",int id = 0)39 {40 name = na;41 ID = id;42 }4344public void drvie()45 {46 Type type = MethodBase.GetCurrentMethod().DeclaringType;47 Log4netHelper.WriteLogger(type, LogLevel.Debug, "测试记录car Debug⽇志");48 Log4netHelper.WriteLogger(type, , "测试记录car Info⽇志");49 Log4netHelper.WriteLogger(type, LogLevel.Warn, "测试记录car Warn⽇志");50 Log4netHelper.WriteLogger(type, LogLevel.Error, "测试记录car Error⽇志");51 Log4netHelper.WriteLogger(type, LogLevel.Fatal, "测试记录car Fatal⽇志");52 Console.WriteLine("==============this is car ===============");53 }54 }55 }View Code将⽇志记录输出到⽂件、控制台。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Log4Net技术大全目录文件版本说明 (2)参考资料 (2)手册目的 (2)声明 (2)名词定义和缩略语说明 (2)1log4Net简介 (3)1.1log4Net优点 (3)1.2log4Net使用 (3)1.3log4Net配置文件注意事项 (4)2简单示例三步走 (4)2.1log4Net简单示例 (4)2.1.1 添加引用 (4)2.1.2 构建log4net配置文件 (4)2.1.3 在程序中记录日志 (5)4log4Net的主要结构 (6)4.1 Appenders (6)4.2 Filters (6)4.3 Layouts (7)4.4 Loggers (7)4.5 Object Renders (8)4.6 Repository (9)5 经验总结 (9)5.1配置文件不写在web.config中 (9)5.2解决方案 (9)5.3写一个调用log4net的公共类,根据不同的功能模块来生成不同的ILog接口。

95.4log4net并不一定要在程序发生错误时才记录日志。

(10)文件版本说明表 1 版本说明参考资料1.Log4Net官方文档。

2.技术博客类网站手册目的便于大家学习和使用log4net技术。

声明本文档内容仅做内部学习使用。

名词定义和缩略语说明表 2 名词定义及缩略语说明1 log4Net简介log4net是.Net下一个非常优秀的开源日志记录组件。

log4net记录日志的功能非常强大。

它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。

1.1 log4Net优点1、支持多种记录日志的方式,可分为邮件形式,文本形式,数据库存储,等等。

2、在大并发的情况下很好的解决了写入同一文件的问题。

3、可根据日期以及文件大小来生成不同的日志文件。

4、配置相对简单,调用也方便。

1.2 log4Net使用在这里只对使用步骤进行概括:具体使用方法请参看最后的例子。

1、在项目中添加对log4net.dll的引用。

(局数据系统中已经引入过,版本为v2.0.50727)2、程序启动时读取log4net的配置文件。

(1)如果是CS程序,在根目录的Program.cs中的Main方法中添加:log4net.Config.XmlConfigurator.Configure();(2)如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加:log4net.Config.XmlConfigurator.Configure();(3)无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句:[assembly: log4net.Config .XmlConfigurator()]修改配置文件。

如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。

或则使用自定义的配置文件。

(4)使用自定义的配置文件。

(推荐)调用如下方法读取配置文件,注意path必须为绝对路径。

log4net.Config.XmlConfigurator.ConfigureAndWatch(path);3、在程序使用。

log4net.ILog log = log4net.LogManager.GetLogger("logger");//获取一个日志记录器("record success");//写入一条新log1.3 log4Net配置文件注意事项1、log4net框架会尝试在应用程序的BaseDirectory指向的目录中查找配置文件,即在AppDomain.CurrentDomain.BaseDirectory(局数据框架的webconfig相同的路径)的位置上查找。

而log4net查找的唯一目标就是在配置文件中的< log4net>标志出的XML内容。

2、/configuration/configSection/section 这个项有点特殊,如果你使用的是.net的应用配置文件,那么这个项必须出现,如果你使用的自定义的配置文件,那么这个项可以是不要的,自定义的配置文件只需要<log4net>这个项。

3、Logger是通过类似命名空间的层次结构命名和管理的,每一个应用中的Logger都有一个Root Logger,也就是默认Logger,<root>项就是用于定义Root Logger的。

但是,<root>项并不是必须的,因为<root>项只有在配置文件中没有配置任何Logger的时候才起作用,此时,log4net将使用<root>项的配置作为创建一个Logger时的默认配置。

所以,在这个例子里,因为上面已经配置了<logger>,所以<root>并不起作用,放在这里只是为了做一个完整的配置说明。

但是,需要注意的是,<root>并非完全不起作用。

如果我们在代码中使用了LogManager.GetLog(...),其中的参数指定了一个不在配置文件中的Logger的@name 时,那么log4net将会把<root>作为默认Logger,并依据<root>的配置创建一个Logger。

2简单示例三步走2.1log4Net简单示例2.1.1 添加引用在项目中添加对log4net.dll的引用。

(局数据系统中已经引入过,版本为v2.0.50727)2.1.2 构建log4net配置文件构建log4net的配置文件,具体配置见注释。

<?xml version="1.0"encoding="utf-8" ?><configuration><configSections><section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><log4net><!--1、所有Logger的父节点,root的设置在所有的logger中都起作用--><!--2、如果root和logger中设置了相同的appender,日志会被记录两次--><root><level value="ALL" /><appender-ref ref="ConsoleAppender" /></root><!--日志记录器logger可以有多个--><logger name="logger"><level value="ALL"/><appender-ref ref="LogFileAppender" /></logger><!--1、一个appender可以被多个logger共用--><!--2、logger可以同时引用多个appender--><appender name="LogFileAppender"type="log4net.Appender.FileAppender" ><param name="File"value="C:\log4service_xiangyun.txt" /><param name="AppendToFile"value="true" /><lockingModel type="log4net.Appender.FileAppender+MinimalLock"/><layout type="yout.PatternLayout"><param name="ConversionPattern"value="%d [%t] %-5p %c [%x] - %m%n" /></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin"value="DEBUG" /><param name="LevelMax"value="WARN" /></filter></appender><appender name="ConsoleAppender"type="log4net.Appender.ConsoleAppender" > <layout type="yout.PatternLayout"><param name="ConversionPattern"value="%d [%t] %-5p %c [%x] - %m%n" /></layout></appender></log4net></configuration>2.1.3 在程序中记录日志1、调用如下语句直接记录日志,之前必须读取配置文件,读取方法见1.2小节log4net.LogManager.GetLogger("logger").Debug("this is a log for debug");(1)logger参数就是在配置文件中的配置的日志记录器。

(2)除了Debug方法还有FATAL, ERROR,WARN,INFO四种级别的方法。

详细参见4.4节4log4Net的主要结构log4net是.Net下一个非常优秀的开源日志记录组件。

log4net记录日志的功能非常强大。

相关文档
最新文档