Log4Net 配置

合集下载

log4net使用方法

log4net使用方法

log4net 使用方法log4net 是一个流行的开源日志框架,它允许开发人员在应用程序中记录和输出日志信息。

本文将介绍如何使用 log4net 框架来记录日志,并提供一些常见的用法示例。

下面是本店铺为大家精心编写的4篇《log4net 使用方法》,供大家借鉴与参考,希望对大家有所帮助。

《log4net 使用方法》篇1一、引入 log4net 库首先,需要在应用程序中引入 log4net 库。

这可以通过在项目中添加 log4net.dll 引用实现。

在 Visual Studio 中,可以在“解决方案资源管理器”中右键单击项目名称,然后选择“添加引用”选项。

在弹出的“添加引用”对话框中,选择“浏览”选项卡,然后选择 log4net.dll 文件。

最后,单击“确定”按钮。

二、配置 log4net在使用 log4net 框架之前,需要配置它。

这可以通过创建一个名为“log4net.config”的配置文件来实现。

该文件应该位于应用程序的根目录下。

可以使用任何文本编辑器(如记事本)创建此文件。

以下是一个简单的 log4net.config 示例:```xml<?xml version="1.0" encoding="utf-8"?><configuration><configSections><section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log 4net"/></configSections><log4net><root><level value="DEBUG"/><appender ref="ConsoleAppender"/><appender ref="RollingFileAppender"/></root><appender name="ConsoleAppender"type="log4net.Appender.ConsoleAppender,log4net"><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,fff z} [%t] %-5level %logger{36}- %message%newline"/></layout></appender><appender name="RollingFileAppender"type="log4net.Appender.RollingFileAppender,log4net"><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,fff z} [%t] %-5level %logger{36}- %message%newline"/></layout><file value="log.txt"/><rollingStyle value="Date"/><datePattern value="yyyyMMdd"/><maxSize value="1024KB"/><maxFileCount value="10"/></appender></log4net></configuration>```在这个示例中,我们配置了一个简单的 log4net 框架,它将日志记录到控制台和名为“log.txt”的文件中。

log4net配置

log4net配置

param
appender-ref
02
Part One
logger
属性
name additivity
true false(设置为false时将阻止父 logger中的appender)
logger
一.param
ger
appender-ref
logger
level
A
OFF
D
WARN (警告)
B
FATA L (致命错
误)
E
INFO (一般信
息)
C
ERROR (一般错
误)
F
DEBUG (调试信
息)
logger
level
ALL
03
Part One
appender
appender
1. 属性 2. appender-ref 3. filter 4. layout 5. param
appender
属性
name type
属性
name type
属性
type
1
AdoNetAppender 将日 志记录到数据库中。可以 采用SQL和存储过程两种
方式。
4
BufferingForwarding Appender 在输出到子 Appenders之前先缓存日
志事件。
2
A n s i C o l o r Te r m i n a l A ppender 将日志高亮输
layout
属性
param
属性
type
SimpleLayout 简单输出格式,只输出日志级别与消息内容。 RawTimeStampLayout 用来格式化时间,在向数据库输出时会用到。样式 如“yyyy-MM-dd HH:mm:ss“ ExceptionLayout 需要给Logger的方法传入Exception对象作为参数才起 作用,否则就什么也不输出。输出的时候会包含Message和Trace。 PatternLayout 使用最多的一个Layout,能输出的信息很多,使用方式可参 见PatternLayout用法。

Log4Net使用说明

Log4Net使用说明

Log4Net使用说明一. Log4Net 简介Log4net 是Apache 下一个开放源码的项目,它是Log4j 的一个克隆版。

我们可以控制日志信息的输出目的地。

Log4net中定义了多种日志信息输出模式。

在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难重新,于是我们需要大量的日志数据来精确的跟踪程序的运行状况。

Log4net就可以帮我来解决这一个难题,对于日志的输出我们不需要人为的去干涉,它可以根据需要将日志输出到控制台,文本文件,windows 日志事件查看器中,包括数据库,邮件等等位置,以便我们快速跟踪程序bug。

二. Log4Net 简单使用使用Log4net必须引入log4net.dll 文件,因为log4net 是开源的,所以可以直接将源码添加到工程项目中去。

然后生成新的dll文件。

下面使用配置一个最简单的文件输出和控制台输出。

Log4Net 的配置文件,此段内容添加到App.config 或者web.config 文件中. <?xml version="1.0"?><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="yout.PatternLayout"><!--每条日志末尾的文字说明--><footer value="by 周公"/><!--输出格式--><!--样例2008-03-26 13:42:32,111 [10] INFOLog4NetDemo.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="yout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger[%property{NDC}] - %message%newline"/></layout></appender><!--定义输出到windows事件中--><appender name="EventLogAppender"type="log4net.Appender.EventLogAppender"><layout type="yout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger[%property{NDC}] - %message%newline"/></layout></appender><!--定义输出到数据库中,这里举例输出到SQL Server数据库中--><appender name="AdoNetAppender_SQLServer"type="log4net.Appender.AdoNetAppender"><bufferSize value="100" /><connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" /><connectionString value="data source=HUANGQINGGUOP;initial catalog=Log4Net; integrated security=false;persist security info=True;UserID=sa;Password=123" /><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="yout.PatternLayout"><conversionPattern value="%date"/></layout></parameter><parameter><parameterName value="@thread"/><dbType value="String"/><size value="240"/><layout type="yout.PatternLayout"><conversionPattern value="%thread"/></layout></parameter><parameter><parameterName value="@logLevel"/><dbType value="String"/><size value="240"/><layout type="yout.PatternLayout"><conversionPattern value="%level"/></layout></parameter><parameter><parameterName value="@logger"/><dbType value="String"/><size value="240"/><layout type="yout.PatternLayout"><conversionPattern value="%logger"/></layout></parameter><parameter><parameterName value="@message"/><dbType value="String"/><size value="240"/><layout type="yout.PatternLayout"><conversionPattern value="%message"/></layout></parameter></appender><!--定义日志的输出媒介,下面定义日志以四种方式输出。

Log4netWEB配置

Log4netWEB配置

<file value="./log/logroll.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="100KB" /> <staticLogFileName value="true" /> <layout type="yout.PatternLayout">
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
使用例子:
using System;
/// <summary> ///Web 基类
/// </summary> [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] public class WebBase:System.Web.UI.Page {
2.在程序集信息文件中加载
首先在 dotnet 工程的 AssemblyInfo.cs 文件中加入下面一行
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]

log4net的配置使用详解

log4net的配置使用详解

log4net的配置使⽤详解log4net是⼀款优秀的第三⽅⽇志框架,可以很容易的加载到开发项⽬中(引⽤log4net的dll,再配置些基本参数即可),帮助程序员把⽇志信息输出到各种不同的⽬标,常见的有⽂本、数据库、windows⽇志、邮件、内存缓冲区等⽬标。

⾸先需要log4net的dll(可在NuGet上搜索安装),引⽤到程序中,然后再配置下配置⽂件,配置⽂件如下:<?xml version="1.0"?><configuration><configSections><section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/></configSections><!--站点⽇志配置部分--><log4net><root><!--控制级别,由低到⾼: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--⽐如定义级别为INFO,则INFO级别向下的级别,⽐如DEBUG⽇志将不会被记录--><!--如果没有定义LEVEL的值,则缺省为DEBUG--><level value="ERROR"/><appender-ref ref="RollingFileAppender"/></root><appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"><!--⽇志⽂件名开头--><file value="c:\Log\TestLog4net.TXT"/><!--多线程时采⽤最⼩锁定--><lockingModel type="log4net.Appender.FileAppender+MinimalLock"/><!--⽇期的格式,每天换⼀个⽂件记录,如不设置则永远只记录⼀天的⽇志,需设置--><datePattern value="(yyyyMMdd)"/><!--是否追加到⽂件,默认为true,通常⽆需设置--><appendToFile value="true"/><!--变换的形式为⽇期,这种情况下每天只有⼀个⽇志--><!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义--><!--<rollingStyle value="Date"/>--><!--变换的形式为⽇志⼤⼩--><!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义--><RollingStyle value="Size"/><!--每天记录的⽇志⽂件个数,与maximumFileSize配合使⽤--><MaxSizeRollBackups value="10"/><!--每个⽇志⽂件的最⼤⼤⼩--><!--可⽤的单位:KB|MB|GB--><!--不要使⽤⼩数,否则会⼀直写⼊当前⽇志--><maximumFileSize value="2MB"/><!--⽇志格式--><layout type="yout.PatternLayout"><conversionPattern value="%date [%t]%-5p %c - %m%n"/></layout></appender></log4net></configuration>其中layout节点的配置说明:%m(message):输出的⽇志消息;%n(newline):换⾏;%d(datetime):输出当前语句运⾏的时刻;%r(runtime):输出程序从运⾏到执⾏到当前语句时消耗的毫秒数;%t(threadid):当前语句所在的线程ID ;%p(priority): ⽇志的当前⽇志级别;%c(class):当前⽇志对象的名称;%L:输出语句所在的⾏号;%F:输出语句所在的⽂件名;%-10:表⽰最⼩长度为10,如果不够,则⽤空格填充;其他开发时遇到的问题1.项⽬的⽬标框架为.NET Framework 3.5(或者4) Client Profile时会报出下图错误,改成.NET Framework 3.5(或者4) 即可;2.当configSections节点没有放在configuration节点下的第⼀个节点时,编译时不会报警告,但运⾏时不会记⽇志。

log4net使用(保存日志分别到文本文件,smtp发送邮件,mssql数据库,mysql数据库)

log4net使用(保存日志分别到文本文件,smtp发送邮件,mssql数据库,mysql数据库)

log4net使⽤(保存⽇志分别到⽂本⽂件,smtp发送邮件,mssql数据库,mysql数据库)我们⾃带的MemcachedCacheProviders⾃带的log4net是 1.2.10版本,所以就拿这个版本说吧下⾯是⼀个演⽰的效果,以及⽇志分别表达的意思表⽰时间 2011-09-20 14:17:03,312 (312代表的是毫秒)[4] 表⽰线程编号,暂时不需要管DeBUG 表⽰我们⽤的是debug模式Log4NetTest.Test1 表⽰我们是在哪个类⾥⾯-我的第⼀条⽇志表⽰详细信息下⾯开始配置:(我们配置⼀个能⾃动⽣成⽉份+天数的⽇志⽂件,并且,如果报错,则发送邮件)log4net的配置,跟你的程序是 B/S 还是C/S是没有区别的要想获取最新版本的log4net组件库,可以到官⽅⽹站下载。

现在的最新版本是1.2.10.在程序中我们只需要log4net.dll⽂件就⾏了,添加对log4net.dll的引⽤,就可以在程序中使⽤了。

1:在web.config⾥⾯的 configSections⾥⾯加⼊ log4net,⽽且必须是 configSections的第⼀个元素<configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>2:如果是CS程序,在根⽬录的Program.cs中的Main⽅法中添加:log4net.Config.XmlConfigurator.Configure();如果是BS程序,在根⽬录的Global.asax.cs(没有新建⼀个)中的Application_Start⽅法中添加:private static readonly ILog Logger = LogManager.GetLogger(typeof(Global));protected void Application_Start(object sender, EventArgs e){{log4net.Config.XmlConfigurator.Configure();}}protected void Application_Error(object sender, EventArgs e){Logger.Error("程序发⽣未捕获的异常\t\t\t" + HttpContext.Current.Error.Message, HttpContext.Current.Error);}⽆论BS还是CS程序都可直接在项⽬的AssemblyInfo.cs⽂件⾥添加以下的语句:[assembly: log4net.Config .XmlConfigurator()]3:前台代码的调⽤LogManager.GetLogger(typeof(_Default)).Error(ex.Message);//或者是//ILog logger = LogManager.GetLogger(typeof (_Default));//logger.Error(ex.Message);建议写成⼀个通⽤类public class LogHelper{public static void WriteLog(string strTxt, Exception ex, Type type){ILog log = log4net.LogManager.GetLogger(type);log.Error(strTxt, ex);}}调⽤如下LogHelper.WriteLog("运⾏错误", ex, this.GetType());4:继续在web.config节点⾥⾯的 configuration ⾥⾯ (⼀般是在 </configSections> 结束的下⾯⼀⾏)<log4net><!--这⾥是第⼀个附加器 RollingFileAppender 滚动⽇志⽂件附加器--><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><file value="Log\\"/><!--⽇志⽂件夹及⽂件名开头,⽂件名后⾯加上.log后缀,必须使⽤转义字符--><DatePattern value="yyyyMM\\yyyy-MM-dd&quot;.log&quot;"/><appendToFile value="true"/><!--最多产⽣的⽇志⽂件数,超过则只保留最新的n个。

log4net用法

log4net用法

log4net用法log4net 是一个 C# 日志记录库,可用于记录各种应用程序事件和消息,从而简化调试和问题解决。

它提供了多种不同的日志记录器类型,例如控制台记录器、文件记录器和数据库记录器,允许您以多种格式记录消息。

log4net 可以在应用程序的任何部分使用,以记录即时信息和错误,例如网络请求和响应、代码执行的详细信息等。

它可以用来跟踪应用程序中发生的事件,记录错误和异常以供后期分析。

使用 log4net 的一般步骤如下:1. 引用log4net.dll程序集2. 创建一个配置文件,配置日志器3. 在代码中调用日志器的方法来记录信息以下是一个简单的示例:1. 引用log4net程序集在Visual Studio中,可以通过Nuget包管理器搜索和安装log4net,也可以手动下载并引用 log4net.dll。

2. 创建一个配置文件,配置日志器在工程的根目录下创建一个名为 "log4net.config" 的文件,配置日志器,例如:```xml<log4net><appender name="ConsoleAppender"type="log4net.Appender.ConsoleAppender"><layout type="yout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/></layout></appender><root><level value="DEBUG" /><appender-ref ref="ConsoleAppender" /></root></log4net>```这段配置代码创建了一个在控制台输出日志的日志记录器。

Log4Net配置和使用

Log4Net配置和使用

Log4Net配置和使⽤web.config配置如下:<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /></configSections><log4net><!--错误⽇志配置--><appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log\\LogError\\" /><param name="AppendToFile" value="true" /><param name="MaxSizeRollBackups" value="100" /><param name="MaxFileSize" value="10240" /><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyyMMdd" /><param name="RollingStyle" value="Date" /><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常类:%c [%x] %n%m %n " /> </layout></appender><!--信息⽇志配置--><appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log\\LogInfo\\" /><param name="AppendToFile" value="true" /><param name="MaxFileSize" value="10240" /><param name="MaxSizeRollBackups" value="100" /><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyyMMdd" /><param name="RollingStyle" value="Date" /><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%n⽇志时间:%d [%t] %n⽇志级别:%-5p %n⽇志类:%c [%x] %n%m %n" /> </layout></appender><!--控制台--><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="yout.PatternLayout"><conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /></layout></appender><!--log4net.LogManager.GetLogger("logerror")⽤这个来选择这种类型--><logger name="logerror"><level value="ERROR" /><appender-ref ref="ErrorAppender" /></logger><logger name="loginfo"><level value="INFO" /><appender-ref ref="InfoAppender" /></logger><root><level value="INFO" /><appender-ref ref="InfoAppender" /><appender-ref ref="ConsoleAppender" /></root></log4net></configuration>LOG操作类using System;using System.IO;/**//// <summary>/// LogHelper的摘要说明。

log4net配置文件解析

log4net配置文件解析

log4net配置⽂件解析<log4net><root><level value="ALL" /><appender-ref ref="rollingFile" /></root><appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" ><param name="File" value="log.txt" /><param name="AppendToFile" value="false" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="yyyy.MM.dd" /><param name="StaticLogFileName" value="true" /><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /><param name="Header" value=" ----------------------header-------------------------- " /><param name="Footer" value=" ----------------------footer-------------------------- " /></layout></appender><appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net"><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /></layout></appender><logger name="Log4NetTest.LogTest"><level value="DEBUG" /><appender-ref ref="rollingFile" /><appender-ref ref="coloredConsoleApp" /><appender-ref ref="SystemEvent" /></logger></log4net>log4net配置节的XSD层次如下<log4net><root><level /><appender-ref ref="" /></root><appender name="" type="Appender的完全限定类名"><param name="" value="" /><layout type="yout.PatternLayout,log4net"><param name="" value="" /></layout></appender><logger><level value="" /><appender-ref ref="" /></logger>log4net是log4net配置节的根标记root标记定义⼀个根级别的记录者,log4net的记录者采⽤层级组织的, 每⼀个LOGGER(ROOT也是⼀个LOGGER,只不过,他是祖先⽽已,别的⽅⾯,跟其他LOGGER⼀样),都可以定义Levellevel定义记录的⽇志级别,就是说,你要记录哪个级别以上的⽇志,级别由⾼往低依次是:NoneFatalERRORWARNDEBUGINFOALL级别的定义要注意,如果你定义DEBUG,那么低于DEBUG级别以下的信息,将不会记⼊⽇志,啥意思呢?就是说,就算你在程序⾥,⽤()来写⼊⼀个⽇志信息,可是你在配置中指定level为DEBUG,由于INFO级别低于DEBUG,所以,不会被记⼊⽇志.这样的处理⾮常灵活Logger还有⼀个配置就是appender-ref了,ref是参照的意思,log4net的架构⾮常有意思,可扩展性⾮常⾼⾮常值得借鉴,他分为四个要素: loggerappenderlayoutfilterlogger是负责⽇志的记录者appender提供记录的介质layout负责把记⼊的内容格式化filter负责把内容进⾏筛选可以说,整个过程就是⼀个⽇志流⽔线,每个成员负责其中的⼀个环节logger发出记录信息,appender接到信息,根据内部的layout配置对记录信息格式化,根据filter决定此信息是否被过滤掉,最后,将其序列化因此,logger的appender-ref就是定义说,LOGGER要找谁去将内容写⼊磁盘,流或其他介质,因此,⼗分重要吧既然是ref引⽤,那肯定要定义这个被引⽤的appender对象了呀每个appender都代表了⼀个输出介质name属性指定其名称,type则是log4net.Appender命名空间的⼀个类的名称,意思是,指定使⽤哪种介质log4net⽀持的appender类型有⼗⼏种,最常⽤的有rollingFileAppender,AdoNetAppender,EventLogAppender,FileAppender,分别把⽇志记⼊⽂件,系统⽇志和数据库除此之外,appender内的其他参数都⽤param标记,以key/value形式定义于其内这⾥有个⼩提⽰,每⼀个appender,log4net并没有在⽂档中提出他们需要哪些参数,那么,我们怎么知道呢?原来,这些param的名称,你可以直接查对应的appender类的属性名即可,例如,使⽤EventLogAppender时,通过查看类的属性,我们知道其有LogName,ApplicationName属性,那么,意味着,你可以直接在这个APPENDER的param⾥加⼊以下内容:<param name="LogName" value="Application" /><param name="ApplicationName" value="log4netTest" />定义了appender的NAME及TYPE属性,以及使⽤param为其指定参数后,⼀个appender就建⽴了,你可以使⽤他的名字在LOGGER的<appender-ref中去引⽤它,那么,引⽤它的LOGGER在写⼊⽇志时,就是写到了APPENDER中定义的介质中去了⼀个LOGGER可以引⽤多个APPENDER,其结果是,同⼀个⽇志,被同时记录到多个介质中去 ,便如,同时发邮件,写⼊系统⽇志,发送到远程主机.不过,虽然可以这样做,但是还是要⼩⼼,因为,会对性能有⼀定的影响,除⾮你需要,否则,不要乱⽤此功能另外,appender中可以定义可选的layoutlayout的定义⾮常有必要,如果你不想将来看到你的⽇志会感觉头晕的话,虽然log4net帮你写⼊⽇志,但是,⽇志信息的格式却是我们使⽤者⾃⾏定义的layout的type参数指定使⽤哪个类的定义来格式化,常⽤的有XmlLayout,SimpleLayout,PatternLayout,这个当然要根据你的需要,以及你要产⽣的格式来选啦,如果你要输出成XML⽂档格式,你肯定不能⽤simplelayout吧layout使⽤param以KEY/VALUE形式定义其参数各个Layout类使⽤的参数当然不⼀样啦,具体的,你可以去看各个Layout类的属性其中,PatternLayout可以使⽤ConversionPattern参数来指定⼀个格式化字符串以及可以指定⼀个Header参数,做为⽇志开头的字符串,Footer来指定结尾字符串这⾥有⼀个⼩技巧,⽇志中开头和结尾总想产⽣回车符吧,虽然logger在写⼊⼀条⽇志会⾃动回车,可是Header和FOOTER却不会,咋办?⽤\n\r 吗?(我从别⼈的BLOG上看到过)经实践,\n\r会原样定改⽇志,根本不会转换.其实,我们可以⽤XML实体呀,使⽤&#13;&#10;就可以在指定位置插⼊⼀个回车换⾏符了最后,像log4net的⽂档中说的那样,如果你不想你的⽇志⽂件变得很⼤,使读写的性能下降的话,建议你还是分级管理⽇志,把粒度变⼩点,也就是说,除了定义ROOT外,最后,对每⼀个模块或每⼀个实体,依据⽤途,⽬的,定义各⾃的LOGGER配置,这样的好处是⽇志被分散了,⽇志⽂件增长就没那么快了.每⼀个LOGGER的结构跟ROOT是⼀模⼀样的,这⾥不再叙述了.像前⾯说的那样,如果你相让⽇志产⽣层级关系,你可以跟他们的NAME属性像C#中的namespace那样命名就可以了要说明的是,LOGGER的定义是⾮必须的,只是⼀种建议罢了,Log4net的配置中,除了必须定义⼀个ROOT和⼀个APPENDER外,其他的都是可选的另⼀种配置log4net的⽅法,是在单独的XML⽂件中配置,这个时候,只要把log4net标记中的内容复制过来就⾏了,不需要configSections。

log4net配置详细说明

log4net配置详细说明

log4net配置详细说明1.web⽹站中创建log4net.config<?xml version="1.0" encoding="utf-8"?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><log4net><appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"><file value="log/log.txt" /><appendToFile value="true" /><rollingStyle value="Size" /><maxSizeRollBackups value="1000" /><maximumFileSize value="1024KB" /><staticLogFileName value="true" /><layout type="yout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout><filter type="log4net.Filter.LevelMatchFilter"><param name="LevelToMatch" value="INFO" /></filter></appender><appender name="RollingErrorFileAppender" type="log4net.Appender.RollingFileAppender"><file value="log/error_log.txt" /><appendToFile value="true" /><rollingStyle value="Size" /><maxSizeRollBackups value="1000" /><maximumFileSize value="1024KB" /><staticLogFileName value="true" /><layout type="yout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="WARN" /><levelMax value="FATAL" /></filter></appender><root><level value="INFO" /><appender-ref ref="RollingFileAppender" /></root><logger name="AccountInfoLogger"><appender-ref ref="RollingFileAppender"/><appender-ref ref="RollingErrorFileAppender"/><level value="INFO"/></logger></log4net><system.web><compilation debug="true" targetFramework="4.0" /></system.web></configuration>2.调⽤⽇志的类库或web的AssemblyInfo.cs中添加组件[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]3.调⽤logger.Error("", ex);。

log4net配置

log4net配置

log4net配置1、概述log4net是.Net下一个非常优秀的开源日志记录组件。

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

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

本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。

2、一个简单的使用实例第一步:在项目中添加对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()]也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。

第三步:修改配置文件。

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

App.config文件添加内容如下:<?xml version="1.0"encoding="utf-8" ?><configuration><configSections><section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><log4net><root><level value="WARN" /><appender-ref ref="LogFileAppender" /><appender-ref ref="ConsoleAppender" /></root><logger name="testApp.Logging"><level value="DEBUG"/></logger><appender name="LogFileAppender"type="log4net.Appender.FileAppender" ><param name="File"value="log-file.txt" /><param name="AppendT oFile"value="true" /><layout type="yout.PatternLayout"><param name="Header"value="[Header]"/><param name="Footer"value="[Footer]"/><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.Appe nder.ConsoleAppender" ><layout type="yout.PatternLayout"><param name="ConversionPattern"value="%d [%t] %-5p %c [%x] - %m%n" /></layout></appender></log4net></configuration>第四步:在程序使用。

Log4Net配置详解

Log4Net配置详解

Log4Net配置详解配置⽂件构成主要有两⼤部分,⼀是申明⼀个名为“log4net“的⾃定义配置节,如下所⽰;⼆是<log4net>节的具体配置,这是下⾯要重点说明的<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections>1、<log4net>⽀持的⼦元素:appender0或多个logger0或多个renderer0或多个root最多⼀个param0或多个1.1 、<root>:实际上就是⼀个根logger,所有其它logger都默认继承它,如果配置⽂件⾥没有显式定义,则框架使⽤根⽇志中定义的属性。

root元素没有属性<root>⽀持的⼦元素:appender-ref0个或多个,要引⽤的appender的名字。

level最多⼀个。

只有在这个级别或之上的事件才会被记录。

param0个或多个,设置⼀些参数。

1.2 、<logger>:⽀持的属性:name必须的,logger的名称additivity可选,取值是true或false,默认值是true。

设置为false时将阻⽌⽗logger中的appender。

⽀持的⼦元素:appender-ref0个或多个,要引⽤的appender的名字。

level最多⼀个。

只有在这个级别或之上的事件才会被记录。

param0个或多个,设置⼀些参数。

1.3、<appender>:定义⽇志的输出⽅式,只能作为 log4net 的⼦元素。

name属性必须唯⼀,type属性必须指定。

⽀持的属性:name必须的,Appender对象的名称type必须的,Appender对象的输出类型⽀持的⼦元素:appender-ref0个或多个,允许此appender引⽤其他appender,并不是所以appender类型都⽀持。

log4net配置及使用

log4net配置及使用

log4net配置及使⽤第⼀步:在项⽬引⽤log4net.dll⽂件第⼆步:在Web.config⽂件中加⼊⼀句代码,位置如下:type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />第三步:建⽴⼀个单独的配置⽂件,⽂件名为:log4net.config(这个配置⽂件会在App_Data⽬录下按⽇期每天产⽣⼀个⽇志⽂件,如:Logs_20090703.txt)log4net.config配置⽂件内容:type="log4net.Appender.RollingFileAppender,log4net" >value=""Logs_"yyyyMMdd".txt"" />value=" ----------------------header-------------------------- & #10;" />value=" ----------------------footer-------------------------- &# 10;" />type="log4net.Appender.ConsoleAppender,log4net">type="log4net.Appender.RollingFileAppender">第四步:(这步很关键)(应该建⽴web项⽬⽽不是⽹站)在⽂件AssemblyInfo.cs加⼊⼀句代码,AssemblyInfo.cs的路径所在Properties ⽬录下加⼊的代码如下:// ⽇志组件配置[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]第五步:开始使⽤log4net的.cs代码using log4net;using System.Configuration;object o = ConfigurationSettings.GetConfig("log4net");log4net.Config.DOMConfigurator.Configure(o asSystem.Xml.XmlElement);(此处的代码已过时)log4net.ILog logger =log4net.LogManager.GetLogger("WebLogger");logger.Debug("调试");logger.Error("这是⼀个错误⽇志");logger.Fatal("这是⼀个致命的错误⽇志");logger.Warn("这是⼀条警告⽇志");/doc/02e445136edb6f1aff001fd2.html ("这是⼀条普通信息");ILog log =log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringTy pe);//记录错误⽇志log.Error("error",new Exception("发⽣了⼀个异常"));//记录严重错误log.Fatal("fatal",new Exception("发⽣了⼀个致命错误"));//记录⼀般信息/doc/02e445136edb6f1aff001fd2.html ("info");//记录调试信息log.Debug("debug");//记录警告信息log.Warn("warn");Console.WriteLine("⽇志记录完毕。

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实例应⽤场景:控制软件⼯程拆分为多个⼦项⽬,在开发阶段希望每个⼦项⽬的⽇志是单独的。

同时⼜希望⽇志统⼀集中定义在Tools(Tools为⼯具类项⽬,⽣成Tools.dll)下,⽽不是分散在各个⼦项⽬中。

这就需要解决以下⼏个问题:如何在DLL⽅案中配置Log4net;如何分类Logger;如何在外部使⽤Logger。

1.在DLL中使⽤App.config配置Log4net使⽤NuGet添加log4net引⽤。

为此项⽬添加应⽤程序配置⽂件 Tools.config。

在Assembled中监视此配置⽂件。

在Tools.config的⽂件属性中选择"如果较新则复制"。

2.在Log4net中配置多个名称的Logger对象在Tools.config中添加⽇志配置。

其中 <root>定义了⽇志的记录级别,当前为全记录。

<logger/>会继承<root/>的属性。

配置不同的⽇志输出⽬标。

在配置⽂件中表现为<appender/>的定义。

关联<logger/>与<appender/>。

同时指定<logger>的name属性,获取不同⽇志对象时使⽤。

<?xml version="1.0" encoding="utf-8"?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections><log4net name="DefaultLogger"><root><level value="ALL"/></root><logger name="Doraemon.Hardware"><appender-ref ref="HardwareLogger"/></logger><logger name="Doraemon.UI"><appender-ref ref="UILogger"/></logger><!--硬件⽇志--><appender name="HardwareLogger" type="log4net.Appender.RollingFileAppender"><file value="log/hardware.log"/><appendToFile value="true"/><rollingStyle value="Size"/><maxSizeRollBackups value="20"/><maximumFileSize value="256KB"/><staticLogFileName value="true"/><layout type="yout.PatternLayout"><conversionPattern value="%date #[%thread]#%-5level #%logger #[%property{NDC}] - #%message%newline"/></layout></appender><!--UI & Workflow⽇志--><appender name="UILogger" type="log4net.Appender.RollingFileAppender"><file value="log/ui.log"/><appendToFile value="true"/><rollingStyle value="Size"/><maxSizeRollBackups value="20"/><maximumFileSize value="256KB"/><staticLogFileName value="true"/><layout type="yout.PatternLayout"><conversionPattern value="%date #[%thread] #%-5level #%logger #[%property{NDC}] - #%message%newline"/></layout></appender></log4net></configuration>3.在其他项⽬中使⽤public static class Logger{ public static ILog DefaultLogger { get; } public static ILog HardwareLogger { get; } static Logger() { DefaultLogger = LogManager.GetLogger(@"Doraemon.Default"); HardwareLogger = LogManager.GetLogger("Doraemon.Hardware"); }}4.单元测试[TestMethod]public void LoggerTest(){ var loggerCollect = new List<ILog>() { DefaultLogger, HardwareLogger, }; var select = loggerCollect.FindAll((p) => p.IsDebugEnabled == p.IsErrorEnabled == p.IsFatalEnabled == p.IsInfoEnabled == p.IsWarnEnabled); Assert.AreEqual(loggerCollect.Count, select.Count, "⽇志对象初始化存在问题");}5.参考 - App.config and Web.config helper utility, /Articles/26544/ConfigManager-Net-App-config-and-Web-config-helperLog4net, /log4net/download_log4net.cgi2016-05-03 更新: 如果不想将Log4net的配置⽂件集成在⼯程.config中,可以将它以XML格式存在在外部⽂件中。

C#Log4Net配置

C#Log4Net配置

C#Log4Net配置Log4Net是⽤来记录⽇志的,可以将程序运⾏过程中的信息输出到⼀些地⽅(⽂件、数据库、EventLog等),⽇志就是程序的⿊匣⼦,可以通过⽇志查看系统的运⾏过程,从⽽发现系统的问题。

⽇志的作⽤:将运⾏过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。

Log4J。

对于⽹站来讲,不能把异常信息显⽰给⽤户,异常信息只能记录到⽇志,出了问题把⽇志⽂件发给开发⼈员,就能知道问题所在。

配置Log4Net环境(1)新建⼀个WebApplication(2)添加对log4net.dll的引⽤(bin\net\2.0\release 不能引⽤debug版本)(把相应的dll⽂件拷贝到项⽬中的lib⽂件夹下。

)(3)在Web.Config (或App.Config)添加配置,见备注(4)初始化:在程序最开始加⼊log4net.Config.XmlConfigurator.Configure();如果是aspx,则应该加载Application_start(){} 这个⽅法⾥⾯。

如果是mvc 则应该加载重写的OnActionExecuting(){}⾥⾯(5)在要打印⽇志的地⽅LogManager.GetLogger(typeof(Program)).Debug(“信息”); 。

通过LogManager.GetLogger传递要记录的⽇志类类名获得这个类的ILog(这样在⽇志⽂件中就能看到这条⽇志是哪个类输出的了),然后调⽤Debug⽅法输出消息。

因为⼀个类内部不⽌⼀个地⽅要打印⽇志,所以⼀般把ILog声明为⼀个static字段。

Private static ILog logger=LogManager.GetLogger(typeof(Test))输出错误信息⽤ILog.Error⽅法,第⼆个参数可以传递Exception对象。

log.Error("***错误"+ex),log.Error("***错误",ex)测试代码:Appender:可以将⽇志输出到不同的地⽅,不同的输出⽬标对应不同的Appender:RollingFileAppender(滚动⽂件)、AdoNetAppender(数据库)、SmtpAppender (邮件)等。

C#使用配置Log4Net

C#使用配置Log4Net

C#使⽤配置Log4Net1、⾸先在项⽬中添加Nuget程序包...2、然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续⼏分钟,请耐⼼等待>3、在项⽬中添加⼀个Config⽂件,如已有App.config,则直接在其中添加内容:截图中配置的XML代码如下:<log4net><logger name="logerror"><level value="ERROR"/><appender-ref ref="ErrorAppender"/></logger><logger name="loginfo"><level value="INFO"/><appender-ref ref="InfoAppender"/></logger><appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log\\LogError\\"/><param name="AppendToFile" value="true"/><param name="MaxSizeRollBackups" value="100"/><param name="MaxFileSize" value="10240"/><param name="StaticLogFileName" value="false"/><param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;"/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n"/> </layout><!--&lt; &gt; = <> %n = 回车--></appender><appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log\\LogInfo\\"/><param name="AppendToFile" value="true"/><param name="MaxFileSize" value="10240"/><param name="MaxSizeRollBackups" value="100"/><param name="StaticLogFileName" value="false"/><param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;"/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><param name="ConversionPattern" value="⽇志时间:%d %n⽇志级别:%-5p %n⽇志内容:%m%n%n"/> </layout></appender></log4net>最后在项⽬的 AssemblyInfo.cs ⽂件中注册Config⽂件,如下://为项⽬注册Log4Net.config配置⽂件[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]最后,添加⽇志类:public class LogHelper{private LogHelper(){}public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");public static void SetConfig(){log4net.Config.XmlConfigurator.Configure();}public static void SetConfig(FileInfo configFile){log4net.Config.XmlConfigurator.Configure(configFile);}public static void WriteLog(string info){if (loginfo.IsInfoEnabled){(info);}}public static void WriteLog(string info, Exception se){if (logerror.IsErrorEnabled){logerror.Error(info, se);}}}好了,到了这⾥,准备⼯作也就完成了,下⾯我们就开始测试下吧⽇志⽂件默认记录在根⽬录下,在config中可以更改路径。

C#log4net的配置

C#log4net的配置

C#log4net的配置项⽬的⽇志组件是必备可少的,任何项⽬中都需要。

这样既⽅便前期的开发测试也⽅便项⽬后期的项⽬维护。

C#项⽬的⼀个不错的⽇志组件是log4net,下⾯我就把⽹站项⽬、桌⾯应⽤程序项⽬中log4net的如何配置粗略的介绍⼀下。

⽹站项⽬中的配置⾸先,你得确保你的电脑是联⽹的。

确保这⼀点后,我们就是先给项⽬中安装log4net。

安装的⽅法有很多种,我粗略介绍⼀下我经常使⽤的⽅法:使⽤Visual Studio 2013(我这⾥使⽤的是2013)打开项⽬,在“解决⽅案资源管理器”的项⽬⽬录中找到“引⽤”⿏标右键弹出菜单中点击“管理NuGet程序包(N)...”就会弹出⼀个管理窗⼝如下图:图1如果这样不⾏的话可以试试“程序包管理器控制台”⽤命令安装:先要打开控制台,在“⼯具”→“NuGet程序包管理器”→“程序包管理器控制台”这样就可以打开程序包管理器控制台。

那么安装命令不会怎么办?这个好办还是像图1的窗⼝做如下操作:图2图3图4这样就把log4net的程序包安装到项⽬中,接下来就是怎么在项⽬中配置了。

⾸先讲解⽹站项⽬中是怎么配置的。

第⼀步:在Web.config⽂件中做如下配置,先上图看⼀下究竟:图5图6下是图5、图6中的配置⽂件中的代码:<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/><log4net><!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL --><!-- Set root logger level to ERROR and its appenders --><root><level value="ALL"/><appender-ref ref="SysAppender"/></root><!-- Print only messages of level DEBUG or above in the packages --><logger name="WebLogger"><level value="DEBUG"/></logger><appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net"><param name="File" value="App_Data/"/><param name="AppendToFile" value="true"/><param name="RollingStyle" value="Date"/><param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;"/><param name="StaticLogFileName" value="false"/><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/></layout></appender><appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net"><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/></layout></appender></log4net>View Code第⼆步,先贴图下⾯贴出代码:图7图7中的代码://配置log4log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/Web.config")));View Code这样⽹站项⽬中log4net的配置⼯作就完成了。

log4net 参数

log4net 参数

log4net 参数log4net参数log4net是一个用于记录日志的开源框架,被广泛应用于各种类型的软件开发中。

在使用log4net的过程中,我们可以通过传递不同的参数来控制日志记录的行为。

本文将介绍一些常用的log4net参数,帮助读者更好地理解和使用该框架。

1. 日志级别参数log4net提供了多个日志级别参数,用于指定日志的重要程度。

常见的日志级别参数包括:- Debug:调试级别,用于输出详细的调试信息,通常在开发和调试阶段使用。

- Info:信息级别,用于输出一般的信息日志,如操作成功、请求处理等。

- Warn:警告级别,用于输出一些潜在的问题或异常情况,不会影响系统正常运行。

- Error:错误级别,用于输出系统发生的错误,如异常抛出、数据库连接失败等。

- Fatal:严重错误级别,用于输出系统发生的严重错误,可能导致系统崩溃或无法继续运行。

通过设置日志级别参数,可以精确地控制需要记录的日志信息,避免产生过多或过少的日志。

2. 输出格式参数log4net支持多种输出格式参数,用于指定日志记录的格式。

常见的输出格式参数包括:- ConversionPattern:用于指定日志输出的格式模板,可以包含日期、时间、日志级别、日志内容等信息。

- DatePattern:用于指定日期格式,可以按照不同的格式将日期输出为年月日、月日年等形式。

- MaxFileSize:用于指定日志文件的最大大小,当日志文件达到指定的大小时,log4net将自动创建新的日志文件。

通过设置输出格式参数,可以使日志记录的格式更加易读和美观。

3. 输出目标参数log4net支持将日志记录输出到不同的目标,如控制台、文件、数据库等。

常见的输出目标参数包括:- ConsoleAppender:将日志输出到控制台,适用于调试和开发阶段。

- FileAppender:将日志输出到文件,可以指定文件路径、文件名等相关参数。

- AdoNetAppender:将日志输出到数据库,可以指定数据库连接字符串、表名等相关参数。

log4net 参数

log4net 参数

log4net 参数log4net参数是指在使用log4net日志框架时所需要配置的一些参数。

log4net是一个开源的日志记录工具,可以用于记录应用程序的运行状态和调试信息。

通过合理配置log4net参数,可以实现灵活的日志记录和管理。

我们需要了解log4net的几个重要的参数。

其中,最常用的参数之一是日志级别(level),它用于指定日志的重要程度。

log4net提供了多个预定义的日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL等。

通过设置日志级别,我们可以控制需要记录的日志的详细程度。

另一个重要的参数是日志输出目标(appender)。

log4net支持多种输出目标,比如控制台、文件、数据库等。

通过配置不同的输出目标,我们可以将日志记录到不同的位置,便于查看和分析。

例如,可以将日志输出到文件中,方便后续的分析和统计。

还有一些其他的参数,如日志格式(layout)、日志滚动策略(rolling)等。

日志格式用于指定日志的输出格式,可以包括时间、日志级别、线程ID等信息。

滚动策略用于控制日志文件的大小和数量,以避免日志文件过大或过多。

在配置log4net参数时,我们需要创建一个log4net配置文件,并在应用程序启动时加载该配置文件。

配置文件中定义了各个参数的取值,以及日志输出的规则和方式。

通过修改配置文件,我们可以灵活地调整日志的输出方式和级别,以满足不同的需求。

在实际使用log4net时,我们可以根据具体的场景和需求来选择合适的参数配置。

例如,对于一个需要详细记录调试信息的应用程序,我们可以将日志级别设置为DEBUG,将日志输出到控制台或文件中,方便开发人员进行调试和排查问题。

而对于一个生产环境中的应用程序,我们可以将日志级别设置为WARN或以上,只记录重要的错误信息和异常情况。

除了配置参数,log4net还提供了一些其他的功能和特性,如日志过滤器(filter)、日志追踪器(tracer)等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<param name="StaticLogFileName" value="true"/>
<!--
<param name="DatePattern" value="&quot;xxSQLiteTest_log_&quot;yyyy.MM.dd&quot;.txt&quot;"/>&quot是xml中的双引号
-->
<param name="File" value="D:\SQLiteText_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Size"/>
XmlLayout:
SimpleLayout:
PatternLayout:这3个我都不知道是干嘛的,知道的朋友请告诉我一下,谢谢 了!
-->
<param name="ConversionPattern" value="%d[%t]%-5p %c - %m%n"/>
<param name="MaxSizeRollBackups" value="50"/>
<param name="MaximumFileSize" value="3MB"/>
<param name="RollingStyle" value="Size"/>
-->
<layout type="yout.PatternLayout,log4net">
<!--
layout决定日志的输出格式,用户自己指定输出的内容以什么样的格式来存放,这样以后在浏览日志的时候不会头晕;
type指定肺胀哪个类的定义来格式化内容,常用的有:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
[assembly:log4net.Config.DOMConfigurator(ConfigFile="web.config",Watch=true)]
在应用程序中获取ILog对象
在需要使用LOGGER功能的类中,引入log4net空间,为类加入静态只读成员(静态的目的是只用一个对象,只读是防止误改)
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(typeof(SQLiteHelper));
这里就可以获取配置文件中与类名同名的LOGGER对象了
....catch (Exception ex)
{
logger.Error("SQLite命令预处理错误:"+ex.Message );
}
-->
</configuration>
FileAppender:把日志记录到文件
rollingFileAppender:把日志以回滚的方式记录到文件(我一直也没明白FileAppender和RollFileAppender这两种方式有什么区别..知道的朋友请留言或评论告诉我一下,谢谢!)
appender内的其它参数都用param标记,以key/value形式定义,param的名称,可以查对应的appender类的属性名称即可
-->
<param name="Header" value="&#13;&#10;----------header----------&#13;&#10;"/>
<param name="Footer" value="&#13;&#10;----------footer----------&#13;&#10;"/>
<appender-ref ref="SystemEvent"/>
-->
</logger>
</log4net>
<!--
在应用程序代码中读取配置
在应用程序集的assemblyInfo.cs文件中读取log4net配置
对于WINFORM应用程序,你可以加入
<!--记录哪个级别上的日志,从高到低有None,Fatal,ERROR,WARN,DEBUG,INFO,ALL-->
<appender-ref ref="rollingFile"/>
<!--rollingFile是根logger的appender要引用的appender名称,一个logger可以引用多个appender将日志同时记录到多个不同的地方-->
<!--
这里的参数名称根据所指定的类的属性不同而不同
如果用PatternLayout可以用ConversionPattern参数来指定一个格式化字符串和Header,Footer,&#13;&#10是xml实体,他们表示回车换行符(\r\n不会转换)
<!--
每个appender都代表一个输出.Appender命名空间里的一个类名,它指定使用哪种介质,最常用的有
AdoNetAppender:把日志记入到数据库中
EventLogAppender:记入到系统日志
</root>
<!--
logger有四个要素:
logger日志的记录者
appender提供记录的介质
layout把记录的内容格式化
filter筛选记录的内容
-->
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
</configSections>
<log4net>
<!--,Log4net的配置中,除了必须定义一个ROOT和一个APPENDER外,其他的都是可选的-->
<root>
<!--根级别的logger,他是所有logger的祖先-->
<level value="ALL"/>
</layout>
</appender>
<logger name="SQLiteHelper">
<level value="ALL"/>
<appender-ref ref="rollingFile"/>
<!--
<appender-ref ref="coloredConsoleApp"/>
[assembly :log4net.Config.XmlConfigurator(Watch =true)]
其实Watch前面还有一个ConfigFile参数,WinForm默认为App.Config,WebForm默认为Web.Config,如果你的配置是写在这两个
xml文件中的话,可以省略掉这个参数
相关文档
最新文档