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 (邮件)等。
log4net使用
1,引用log4net.dll;
2,新建配置文件log4net.config;
3,使用log4net;
附件是dll文件和config文件样例,可以参考使用。
实际使用中,通常写一个类负责初始化log4net和返回log4net实例:
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//初始化Log4Net配置
Log4Net.Log4NetInit();
}
页面上的使用:
}
/// <summary>
/// 返回日志对象
/// </summary>
public static log4net.ILog Log()
{
return log4net.LogManager.GetLogger("KangarooLog");
}
}
在Global.asax中,初始化Log4Net配置:
Log4Net.Log().Error("Error");
Log4Net.Log().Warn("Warn");
Log4Net.Log().Info("Info");
Log4net.config配置文件的内容:
<?xml version="1.0" encoding="utf-8"?><log4net> <logger name="KangarooLog"> <!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL" /> <!--<appender-ref ref="SmtpAppenderKangaroo"></appender-ref>--> <appender-ref ref="FileAppenderKangaroo"></appender-ref> </logger>
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”的文件中。
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".txt""/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n"/> </layout><!--< > = <> %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".txt""/><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中可以更改路径。
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配置
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配置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的过程中,我们可以通过传递不同的参数来控制日志记录的行为。
本文将介绍一些常用的log4net参数,帮助读者更好地理解和使用该框架。
1. 日志级别参数log4net提供了多个日志级别参数,用于指定日志的重要程度。
常见的日志级别参数包括:- Debug:调试级别,用于输出详细的调试信息,通常在开发和调试阶段使用。
- Info:信息级别,用于输出一般的信息日志,如操作成功、请求处理等。
- Warn:警告级别,用于输出一些潜在的问题或异常情况,不会影响系统正常运行。
- Error:错误级别,用于输出系统发生的错误,如异常抛出、数据库连接失败等。
- Fatal:严重错误级别,用于输出系统发生的严重错误,可能导致系统崩溃或无法继续运行。
通过设置日志级别参数,可以精确地控制需要记录的日志信息,避免产生过多或过少的日志。
2. 输出格式参数log4net支持多种输出格式参数,用于指定日志记录的格式。
常见的输出格式参数包括:- ConversionPattern:用于指定日志输出的格式模板,可以包含日期、时间、日志级别、日志内容等信息。
- DatePattern:用于指定日期格式,可以按照不同的格式将日期输出为年月日、月日年等形式。
- MaxFileSize:用于指定日志文件的最大大小,当日志文件达到指定的大小时,log4net将自动创建新的日志文件。
通过设置输出格式参数,可以使日志记录的格式更加易读和美观。
3. 输出目标参数log4net支持将日志记录输出到不同的目标,如控制台、文件、数据库等。
常见的输出目标参数包括:- ConsoleAppender:将日志输出到控制台,适用于调试和开发阶段。
- FileAppender:将日志输出到文件,可以指定文件路径、文件名等相关参数。
- AdoNetAppender:将日志输出到数据库,可以指定数据库连接字符串、表名等相关参数。
【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 参数
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)等。
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><!--定义日志的输出媒介,下面定义日志以四种方式输出。
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 的使用做个简要说明,所有涉及到扩展和开发的部分一概忽略。
使用Log4net,需要熟悉的东东有Logger、Appender 以及Layout。
Logger 是日志记录器,我们使用其相关方法来完成日志记录;Appender 用于设置日志的存储方式和位置,Logger 的配置中会绑定一个或多个Appender;Layout 关联具体的Appender,用于设置日志字符串的格式。
1. Logger所有的记录器都必须实现ILog 接口,该接口提供日志记录所需的大量方法。
public interface ILog : ILoggerWrapper{void Debug(...);void Error(...);void Fatal(...);void Info(...);void Warn(...);bool IsDebugEnabled { get; }bool IsErrorEnabled { get; }bool IsFatalEnabled { get; }bool IsInfoEnabled { get; }bool IsWarnEnabled { get; }}通常情况下,我们通过LogManager.GetLogger() 来获取一个记录器。
LogManager 内部维护一个hashtable,保存新创建Logger 引用,下次需要时直接从hashtable 获取其实例。
ILog log = LogManager.GetLogger(this.GetType());log.Debug("aaaaaaaaaaaaaaa");所有Logger 的参数设置都直接或间接继承自root,其继承关系类似namespace。
比如,名为"MyLogger.X.Y" 参数设置继承自"MyLogger.X"。
.net简单使用Log4net的方法(多个日志配置文件)
.net简单使⽤Log4net的⽅法(多个⽇志配置⽂件)前⾔:⼏乎所有的⼤型应⽤都会有⾃⼰的⽤于跟踪调试的API。
因为⼀旦程序被部署以后,就不太可能再利⽤专门的调试⼯具了。
然⽽⼀个管理员可能需要有⼀套强⼤的⽇志系统来诊断和修复配置上的问题。
所以这个时候就需要⼀个记录⽇志的⼯具。
log4net是.Net下⼀个⾮常优秀的开源⽇志记录组件。
log4net记录⽇志的功能⾮常强⼤。
它可以将⽇志分不同的等级,以不同的格式,输出到不同的媒介。
那先来介绍⼀下:开发⼯具vs2017【注意项⽬名称不要为log4net,否者在之后配置log4net出错】1】NuGet中引⽤Log4net包2】添加web配置⽂件命名为log4new.config并在中写⼊以下代码<?xml version="1.0" encoding="utf-8"?><configuration><system.web><compilation debug="true" targetFramework="4.5" /><httpRuntime targetFramework="4.5" /></system.web><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.2" /></configSections><!--配置log4net--><log4net><root></root><logger name="RollingLogFileAppender"><level value="ALL" /><appender-ref ref="RollingFileDebug" /><appender-ref ref="RollingFileInfo" /><appender-ref ref="RollingFileWarn" /><appender-ref ref="RollingFileError" /><appender-ref ref="RollingFileFatal" /></logger><appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender"><!--⽂件路径如果不设置(去掉 value="Log/Debug/")会默认保存到[App_Data]⽂件夹中--><param name="File" value="Log/Debug/"/><!--追加到⽂件--><param name="AppendToFile" value="true"/><!--最多保留的⽂件数,设为"-1"则不限--><param name="MaxSizeRollBackups" value="10"/><!--写到⼀个⽂件--><param name="StaticLogFileName" value="false"/><!--⽂件名,按⽇期命名--><param name="DatePattern" value="yyyyMMdd".log""/><!--创建⽇志⽂件的⽅式,可选值:Date[⽇期],⽂件⼤⼩[Size],混合[Composite]--><param name="RollingStyle" value="Date"/><!--⽇志格式--><layout type="yout.PatternLayout"><!--%newline输出的⽇志会换⾏ [%date{HH:mm:ss fff}]表⽰记录的时间 --><conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" /><!--如果想⾃⼰设置格式就只需要--><!--<conversionPattern value="%message"/>--></layout><lockingmodel type="log4net.appender.fileappender+minimallock" /><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="Debug" /><param name="LevelMax" value="Debug" /></filter></appender><appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log/Info/"/><param name="AppendToFile" value="true"/><param name="MaxSizeRollBackups" value="10"/><param name="StaticLogFileName" value="false"/><param name="DatePattern" value="yyyyMMdd".log""/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" /></layout><lockingmodel type="log4net.appender.fileappender+minimallock" /><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log/Warn/"/><param name="AppendToFile" value="true"/><param name="MaxSizeRollBackups" value="10"/><param name="StaticLogFileName" value="false"/><param name="DatePattern" value="yyyyMMdd".log""/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" /></layout><lockingmodel type="log4net.appender.fileappender+minimallock" /><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="WARN" /><param name="LevelMax" value="WARN" /></filter></appender><appender name="RollingFileError" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log/Error/"/><param name="AppendToFile" value="true"/><param name="MaxSizeRollBackups" value="10"/><param name="StaticLogFileName" value="false"/><param name="DatePattern" value="yyyyMMdd".log""/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" /></layout><lockingmodel type="log4net.appender.fileappender+minimallock" /><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter></appender><appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log/Fatal/"/><param name="AppendToFile" value="true"/><param name="MaxSizeRollBackups" value="10"/><param name="StaticLogFileName" value="false"/><param name="DatePattern" value="yyyyMMdd".log""/><param name="RollingStyle" value="Date"/><layout type="yout.PatternLayout"><conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" /></layout><lockingmodel type="log4net.appender.fileappender+minimallock" /><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="FATAL" /><param name="LevelMax" value="FATAL" /></filter></appender></log4net></configuration>[3】在Global.asax中添加代码//配置log4log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/Web.config")));4】写⼀个LogHelper.cs但是注意在这个.cs⽂件的命名空间写上[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]注意ConfigFile 后⾯跟的是配置⽂件的相对路径LogHelper代码public class LogHelper{public static readonly ILog Log = LogManager.GetLogger("RollingLogFileAppender");// log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从⾼到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
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的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日志的配置及简单应用
在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率。
而本菜鸟在大神推荐和指导下使用log4net这一插件工具,其中也学到了一些皮毛,所谓好记性不如烂笔头嘛。
为此,将把这些心得体会记录下来,以免遗忘。
同时,也为各位童鞋提供一些参考。
在此声明,本文粗浅之极,大神莫入。
对于log4net有什么功能,这里就不赘述了。
直接进入本文重点,也就是log4net的配置和简单使用。
首先,项目要引入log4net.dll。
然后,为项目增加配置文件——log4net.config<log4net><!--日志配置,按日期保存--><appender name="DefaultLog" type="log4net.Appender.RollingFileAppender"><file value="LogFiles\" /><threshold value="WARN" /><appendToFile value="true" /><maxSizeRollBackups value="-1" /><maximumFileSize value="30MB" /><rollingStyle value="Composite" /><datePattern value='yyyy-MM-dd".log"' /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><header value="-----------程序开始运行-----------" /><footer value="-----------程序结束运行-----------" /><conversionPattern value="%date [%thread] %-5level %logger - %message%n" /></layout></appender><!--日志配置,按日期保存--><appender name="BaseLog" type="log4net.Appender.RollingFileAppender"><file value="LogFiles\" /><appendToFile value="true" /><maxSizeRollBackups value="-1" /><maximumFileSize value="30MB" /><rollingStyle value="Composite" /><datePattern value='yyyy-MM-dd".log"' /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><header value="-----------程序开始运行-----------" /><footer value="-----------程序结束运行-----------" /><conversionPattern value="%date [%thread] %-5level - %message%newline" /> </layout></appender><!--控制台日志配置,按日期保存--><appender name="ConsoleLog" type="log4net.Appender.RollingFileAppender"><file value="LogFiles\" /><appendToFile value="true" /><maxSizeRollBackups value="-1" /><maximumFileSize value="30MB" /><rollingStyle value="Composite" /><datePattern value='yyyy-MM-dd".log"' /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><header value="-----------程序开始运行-----------" /><footer value="-----------程序结束运行-----------" /><conversionPattern value="%date [%thread] %-5level - %message%newline" /> </layout></appender><!--窗体日志配置,按日期保存--><appender name="FromLog" type="log4net.Appender.RollingFileAppender"><file value="LogFiles\" /><appendToFile value="true" /><maxSizeRollBackups value="-1" /><maximumFileSize value="30MB" /><rollingStyle value="Composite" /><datePattern value='yyyy-MM-dd".log"' /><staticLogFileName value="false" /><layout type="yout.PatternLayout"><header value="-----------程序开始运行-----------" /><footer value="-----------程序结束运行-----------" /><conversionPattern value="%date [%thread] %-5level - %message%newline" /> </layout></appender><!-- 根级别,作为默认值 --><root><!--OFF - 不输出任何日志FATAL - 仅输异常ERROR - 输出错误/异常信息WARN - 输出警告/错误/异常信息INFO - 输出普通/警告/错误/异常信息,默认DEBUG - 输出调试/普通/警告/错误/异常信息ALL - 与DEBUG相同--><level value="WARN" /><!--如果找不到对应的logger,会自动使用这个默认的日志--><appender-ref ref="DefaultLog" /></root><logger name="MyLog.Base.Log"><level value="DEBUG" /><appender-ref ref="BaseLog" /></logger><logger name="MyLog.Base.Console"><level value="DEBUG" /><appender-ref ref="ConsoleLog" /></logger><logger name="MyLog.Base.Form"><level value="DEBUG" /><appender-ref ref="FromLog" /></logger></log4net>在此,简单解释上面配置文件的使用,首先是<appender/>和<logger/>节点必须成对,每对配置,就是一个日志输出的配置。
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(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。
具体的使用方法往下看。
首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。
单击这里下载Log4net 。
使用log4net需要知道其中两个比较重要的概念:logger 和appender。
前者是日志记录对象,后者是日志记录的目标,包括控制台,文件,定量大小的文件,远程广播。
也就是说我们使用log4net的过程可以是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.美妙的是,这一切工作都可以在Web.config配置文件中完成,所用的代码极少. 其配置如下:先在web.config中的<configuration>节点下添加如下配置:<configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHa ndler, log4net"/></configSections>用过web.config自定义节点的朋友都知道,还应该配置log4net节点,接下来在<configuration>节点下添加如下log4net节点配置:1<log4net debug="false">2<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >3<param name="File" value="c:¥Applog.txt"/>4<param name="datePattern" value="yyyy-MM-dd HH:mm"/>5<param name="AppendToFile" value="t rue"/>6<layout type="yout.PatternLayout">7<param nam e="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>8</layout>9</appender>10<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTra ceAppender">11<layout type="yout.PatternLayout">12<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>13</layout>14</appender>15<appender name="EventLogAppender" type="log4net.Appender.EventLogAp pender">16<layout type="yout.PatternLayout">17<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>18</layout>19</appender>20<appender name="RollingLogFileAppender" type="log4net.Appender.Rolling FileAppender">21<param nam e="File" value="C:¥Log.txt"/>22<param nam e="AppendToFile" value="t rue"/>23<param nam e="MaxSizeRollBackups" value="10"/>24<param nam e="Maximu m FileSize" value="5MB"/>25<param nam e="RollingStyle" value="Size"/>26<param nam e="StaticLogFileNam e" value="true"/>27<layout type="yout.PatternLayout">28<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>29</layout>30</appender>31<root>32<level value="DEBUG"/>33<appender-ref ref="LogFileAppender"/>34</root>35</log4net><param name="ConversionPattern" value="当前时间:%d |当前线程:[%t] | 当前日志的优先级别:%-5p | 当前日志对象名称:%c [%x] |日志消息:%m | 执行时间:[%r] %n" /><!--輸出文件格式説明:%d 输出当前语句运行的时刻%t 当前语句所在的线程%-数字:表示该项的最小长度,如果不够,则用空格填充%p 日志的当前优先级别,即DEBUG、INFO<、WARN…等%m输出的日志消息,如ILog.Debug(…)>输出的一条消息%n 换行%r 運行的時間%c 当前日志对象的名称-->从上面的配置中可以看到定义了多个appender,每一个appender就是一个日志记录的目标。
log4net wpf 用法
一、介绍log4net和WPFlog4net是一个用于.NET评台的日志记录工具,它可以帮助开发人员在应用程序中收集和管理日志信息。
WPF(Windows Presentation Foundation)是微软推出的一种用于创建窗体应用程序的技术,它提供了丰富的图形用户界面功能,旨在取代传统的Windows窗体应用程序开发。
二、log4net的基本用法1. 引用log4net库在使用log4net之前,首先需要在项目中引用log4net库。
可以通过NuGet包管理器搜索log4net并安装。
2. 配置log4netlog4net的配置文件通常是一个XML文件,其中包含了日志记录的级别、输出目标等信息。
可以在项目中添加一个名为log4net.config的XML文件,并在应用程序启动时读取该文件来初始化log4net。
3. 记录日志通过log4net库提供的API,开发人员可以使用不同的日志级别记录信息,例如Debug、Info、Warn、Error和Fatal。
在代码中,使用Logger对像,调用对应级别的记录函数,即可记录日志信息。
4. 输出日志log4net提供了多种输出目标,包括控制台、文件、数据库等。
开发人员可以根据实际需求选择合适的输出目标,将日志信息输出到相应的地方。
三、log4net与WPF的结合1. WPF中的日志记录在WPF应用程序中,开发人员可以使用log4net来记录日志信息,帮助在应用程序运行过程中监控和排查问题。
通过log4net的配置和API,可以在WPF应用程序中实现灵活的日志记录功能。
2. 日志信息的展示除了记录日志信息,开发人员还可以在WPF应用程序中实现日志信息的展示和查看功能。
通过WPF的图形用户界面技术,可以创建日志信息的列表、过滤器、搜索等功能,为用户提供方便的日志查看体验。
3. 日志信息的导出有时候,开发人员需要将日志信息导出到文件或者其他地方进行分析和归档。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一步:在项目引用log4net.dll文件第二步:在Web.config文件中加入一句代码,位置如下:<configuration><configSections><section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections></configuration>第三步:建立一个单独的配置文件,文件名为:log4net.config(这个配置文件会在App_Data目录下按日期每天产生一个日志文件,如:Logs_20090703.txt)log4net.config配置文件内容:<?xml version="1.0"encoding="utf-8"?><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=""Logs_"yyyyMMdd".txt"" /><param name="StaticLogFileName"value="false" /><layout type="yout.PatternLayout,log4net"><param name="ConversionPattern"value="%d [%t] %-5p %c - %m%n" /><param name="Header"value=" ----------------------header-------------------------- & #10;" /><param name="Footer"value=" ----------------------footer-------------------------- &# 10;" /></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><appender name="SysAppender"type="log4net.Appender.RollingFileAppender"><param name="File"value="App_Data\Logs.txt"/><param name="AppendToFile"value="true"/><param name="MaxSizeRollBackups"value="12"/><!--切割最多文件数--><param name="MaximumFileSize"value="500KB"/><!--每个文件的大小--><param name="RollingStyle"value="Size"/><param name="StaticLogFileName"value="true"/><layout type="yout.PatternLayout"><param name="ConversionPattern"value="%d [%t] %-5p %c [%x]- %m%n"/></layout></appender></log4net>第四步:(这步很关键)(应该建立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("这是一条警告日志");("这是一条普通信息");ILog log =log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringTy pe);//记录错误日志log.Error("error",new Exception("发生了一个异常"));//记录严重错误log.Fatal("fatal",new Exception("发生了一个致命错误"));//记录一般信息("info");//记录调试信息log.Debug("debug");//记录警告信息log.Warn("warn");Console.WriteLine("日志记录完毕。
");Console.Read();第二部分详细说明:涉及多种输出途径下面的例子展示了如何利用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: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><!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb--><appender name="AdoNetAppender_Access"type="log4net.Appender.AdoNetAppender"><connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /><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><!--定义日志的输出媒介,下面定义日志以四种方式输出。