log4net配置及使用
- 格式:doc
- 大小:146.00 KB
- 文档页数:16
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 使用方法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#使⽤配置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配置和使⽤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配置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参数,帮助读者更好地理解和使用该框架。
1. 日志级别参数log4net提供了多个日志级别参数,用于指定日志的重要程度。
常见的日志级别参数包括:- Debug:调试级别,用于输出详细的调试信息,通常在开发和调试阶段使用。
- Info:信息级别,用于输出一般的信息日志,如操作成功、请求处理等。
- Warn:警告级别,用于输出一些潜在的问题或异常情况,不会影响系统正常运行。
- Error:错误级别,用于输出系统发生的错误,如异常抛出、数据库连接失败等。
- Fatal:严重错误级别,用于输出系统发生的严重错误,可能导致系统崩溃或无法继续运行。
通过设置日志级别参数,可以精确地控制需要记录的日志信息,避免产生过多或过少的日志。
2. 输出格式参数log4net支持多种输出格式参数,用于指定日志记录的格式。
常见的输出格式参数包括:- ConversionPattern:用于指定日志输出的格式模板,可以包含日期、时间、日志级别、日志内容等信息。
- DatePattern:用于指定日期格式,可以按照不同的格式将日期输出为年月日、月日年等形式。
- MaxFileSize:用于指定日志文件的最大大小,当日志文件达到指定的大小时,log4net将自动创建新的日志文件。
通过设置输出格式参数,可以使日志记录的格式更加易读和美观。
3. 输出目标参数log4net支持将日志记录输出到不同的目标,如控制台、文件、数据库等。
常见的输出目标参数包括:- ConsoleAppender:将日志输出到控制台,适用于调试和开发阶段。
- FileAppender:将日志输出到文件,可以指定文件路径、文件名等相关参数。
- AdoNetAppender:将日志输出到数据库,可以指定数据库连接字符串、表名等相关参数。
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.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><!--定义日志的输出媒介,下面定义日志以四种方式输出。