Log4Net的使用方法

介绍日志保存到文本文件和ms sql server的方法

日志信息保存到.txt文件


1 在http://logging.apache.org/log4net/downloads.html”下载

下载incubating-log4net-1.2.10.Zip文件,解压

在log4net-1.2.10\src下面将log4net.sln用Visual Studio.NET打开,编译后可以得到log4net.dll

你在解压的文件夹下面还可以看到examples\net\1.0,你将cs-examples方案打开,将看到多个例子子,是学习的好资料

2 新建项目logweb,添加引用log4net.dll

3 在文件AssemblyInfo.cs下面加入

[assembly:log4net.Config.XmlConfigurator(ConfigFile="web.config",Watch=true)]

其中是ConfigFile="web.config"的web.config是你的配置文件名称,

这将在第5步中提到

你将该代码加入Global.asax文件中的namespace前面也可以

4 在文件Global.asax中

protected void Application_Start(Objectsender, EventArgs e)

{

log4net.Config.XmlConfigurator.Configure();

}

5 定义配置文件

配置信息可以放在任意的文件中。

可以是在程序的配置文件里,如AssemblyName.config或web.config.

也可以是你取的任意名称的文件AppName.exe.Resc等

log4net框架会在相对于AppDomain.CurrentDomain.BaseDirectory属性定义的目录路径下查找配置文件。框架在配置文件里要查找的唯一标识是<log4net>标签。一个完整的配置文件的例子如下

复制代码
< log4net debug ="false" >

<!-- 定义根日志对象里面只有两个属性level和appender-ref

level一个

appender-ref可以多个即定义支持使用的多个Appender对象

-->

< root >



< level value ="DEBUG" />

< appender-ref ref ="LogFileAppender" />

</ root >

<!-- 具体定义支持某个Appender对象

LogFileAppender为Appender对象的名称

type为Appender对象的类型

有如下的

log4net.Appender.AdoNetAppender;

log4net.Appender.UdpAppender;

log4net.Appender.ConsoleAppender

在命名空见log4net.Appender下面还有很多

如果下载了,去文件:log4net-1.2.10\doc\release\config-examples.html

上面还有很多例子



不同的Appender对象还有不同的param

具体可以去config-examples.html

-->

< appender name ="LogFileAppender" type ="log4net.Appender.FileAppender" >

<!--

定义文件和文件的路径,特别注意

如果未有指定路径有可能出现错误,具体原因目前不清楚



-->

< param name ="File" value ="C:\Applog.txt" />



< param name ="datePattern" value ="yyyy-MM-ddHH:mm" />

<!--

-->

< param name ="AppendToFile" value ="true" />

<!--

-->

< layout type ="log4net.Layout.PatternLayout" >

< param name ="ConversionPattern" value ="%d[%t]%-5p%c[%x]-%m%n" />

</ layout >

</ appender >

</ log4net >


复制代码

我们逐步描述下我们使用的日志:

<root>

<level value="DEBUG" />

<appender-ref ref="LogFileAppender" />

</root>

root代表了根日志

<level value="DEBUG" /> 代表了日志级别

在<root>标签里,可以定义level级别值和Appender的列表。如果没有定义LEVEL的值,则缺省为DEBUG。可以通过<appender-ref>标签定义日志对象使用的Appender对象。<appender-ref>声明了在其他地方定义的Appender对象的一个引用。在一个logger对象中的设置会覆盖根日志的设置。而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。

<appender name="LogFileAppender"type="log4net.Appender.FileAppender" >

定义子日志对象 ,不同的Appender对象还有不同的param,具体可以去config-examples.html

6 在界面WebForm1.aspx上面

拖放一个button 在事件里面写如代码:

log4net.ILog log =log4net.LogManager.GetLogger("AA");//log.Logger.Name

log.Debug("这是我在使用Log4Net");

运行应用程序,点击button 。

在C:\下面打开文件Applog.txt 可以看到我们写的日志

日志信息保存到MSSQL数据库中


1-4步骤与将“日志信息保存到.txt文件”相同

5.建立数据表 假如

CREATE TABLE [dbo].[Log] (

[Id] [int] IDENTITY (1, 1) NOT NULL,

[Date] [datetime] NOT NULL,

[Thread] [varchar] (255) NOT NULL,

[Level] [varchar] (50) NOT NULL,

[Logger] [varchar] (255) NOT NULL,

[Message] [varchar] (4000) NOT NULL,

[Exception] [varchar] (2000) NULL

)

6.定义日志文件其中注释处为注意的地方,特注意要写好连接的数据库的字符串。

复制代码
< configSections >

< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

</ configSections >

< log4net debug ="false" >

< root >

< levelvalue ="ALL" />

< appender-ref ref ="ADONetAppender" />

</ root >

<!--

定义loger的名称和使用的appender

-->

< logger name ="AA" >

< levelvalue ="ALL" />

< appender-ref ref ="ADONetAppender" />

</ logger >

< appender name ="ADONetAppender" type ="log4net.Appender.AdoNetAppender" >

<!--

定义几条存入数据库有2条时才写入数据库,没有两条叫缓存

-->

< bufferSize value ="2" />

< connectionType value ="System.Data.SqlClient.SqlConnection,System.Data,Version=1.0.3300.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />

< connectionStringvalue ="database=Northwind;server=CEC-HUANGXX;UserID=sa;Password=sa" />

< commandText value ="INSERTINTOLog([Date],[Thread],[Level],[Logger],[Message],[Exception])VALUES(@log_date,@thread,@log_level,@logger,@message,@exception)" />

< parameter >

< parameterName value ="@log_date" />

< dbType value ="DateTime" />

< layout type ="log4net.Layout.RawTimeStampLayout" />

</ parameter >

< parameter >

< parameterName value ="@thread" />

< dbType value ="String" />

< size value ="255" />

< layout type ="log4net.Layout.PatternLayout" >

< conversionPattern value ="%thread" />

</ layout >

</ parameter >

< parameter >

< parameterName value ="@log_level" />

< dbType value ="String" />

< size value ="50" />

< layout type ="log4net.Layout.PatternLayout" >

< conversionPattern value ="%level" />

</ layout >

</ parameter >

< parameter >

< parameterName value ="@logger" />

< dbType value ="String" />

< size value ="255" />

< layout type ="log4net.Layout.PatternLayout" >

< conversionPattern value ="%logger" />

</ layout >

</ parameter >

< parameter >

< parameterName value ="@message" />

< dbType value ="String" />

< size value ="4000" />

< layout type ="log4net.Layout.PatternLayout" >

< conversionPattern value ="%message" />

</ layout >

</ parameter >

< parameter >

< parameterName value ="@exception" />

< dbType value ="String" />

< size value ="2000" />

< layout type ="log4net.Layout.ExceptionLayout" />

</ parameter >

</ appender >

</ log4net >

复制代码

7 在界面WebForm1.aspx上面

拖放一个button 在事件里面写如代码:

log4net.ILog log =log4net.LogManager.GetLogger("AA");//log.Logger.Name

log.Debug("这是我在使用Log4Net");

运行应用程序,多次点击button 。

在数据库里面去查询,就可以看到日中记录

---------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值