log4net是apache组织开发的日志组件, 同其姐妹log4j一样, 是一个开源项目. 可以以插件的形式应用在你的系统中. 下面仅说明如何应用在web forms项目中. 做为主要的日志输出组件.
数据库的配置
| if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EventLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[EventLog] GO CREATE TABLE [dbo].[EventLog] ( [Log.id] [int] IDENTITY (1, 1) NOT NULL , [Log.date] [datetime] NULL , [Log.thread] [varchar] (255) NULL , [Log.level] [varchar] (50) NULL , [Log.logger] [varchar] (255) NULL , [Log.message] [varchar] (4000) NULL , [Log.exception] [varchar] (2000) NULL ) ON [PRIMARY] GO |
项目配置
1. 首先你应该下载log4net.dll并引入到你的项目References中.
http://www.apache.org
下载地址 http://logging.apache.org/log4net/download.html
2. 需要修改你的global.asa.cs. 配置application对象启动的时候加载log4net配置. 这一步是不可以缺少的.
添加Global.asax
修改以下内容
| void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 log4net.Config.DOMConfigurator.Configure(); } |
配置Web.Config文件
3.在web.cofig根节点 configuration 中加入如下section:
| <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net debug="false"> <!-- 记录方式选择 级别 --> <root> <level value="ALL" /> <appender-ref ref="ADONetAppender" /> <appender-ref ref="LogFileAppender" /> </root> <!-- 日志 SQL记录 设置数据库连接 设置缓存数量 --> <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <!--SQL Server Connetion Setting--> <connectionString value="server=.;database=xxxxxxx;user id=sa;password=" /> <commandText value="INSERT INTO EventLog ([Log_Date],[Log_Thread],[Log_Level],[Log_Logger],[Log_Message],[Log_Exception]) VALUES (@log_date, @log_thread, @log_level, @log_logger, @log_message, @log_exception)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@log_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="@log_logger" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@log_message" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> <parameter> <parameterName value="@log_exception" /> <dbType value="String" /> <size value="2000" /> <layout type="log4net.Layout.ExceptionLayout" /> </parameter> </appender> <!-- 文本记录 设置记录文件路径 --> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <!--记录位置--> <param name="File" value="XxxxApplication.log.txt" /> <param name="datePattern" value="MM-dd HH:mm" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> </log4net> <appSettings/> <connectionStrings/> |
以上定义了多个appender. 简单来说, 每一个 appender 都是一种输出介质.
root节点指定了选用的 appender. 本例选用了LogFileAppender. (文本文件输出). 在Appender定义中定义了输出的格式. 和目标文本文件所在位置. (起始位置是应用程序根目录. (web.config所在目录).
运行
到目前位置就配置好了log4net. 可以在我们的应用中直接使用了.
以下说明应用方法:
要输出日志, 必须首先得到带有一个别名的log.
使用以下命令
随便建立一个web页,插入以下代码
(可以直接使用GetType得到当前类名)
| log4net.ILog log = log4net.LogManager.GetLogger(this.GetType()); log.Info("info"); log.Error("error"); log.Debug("debug"); log.Warn("warn"); |
即可输出日志.
调试后可查找应用程序根目录下是否已经自动创建XxxxxApplication.log.txt文本文件.以及是否正确输出了日志.
log4net是一个非常完善的日志组件. 有着强大的可配置性. 有助于提高开发效率.
posted @ 2009-10-15 11:39 leven-studio 阅读(105) 评论(0)
编辑