Welcome

首页 / 脚本样式 / ExtJS / ExtAspNet应用技巧(八) - log4net配置与使用

ExtAspNet应用技巧(八) - log4net配置与使用2011-10-06 博客园 三生石上前言

为了实践项目驱动的ExtAspNet开发过程,最近我启动了另外一个开源项目 - AppBox。

AppBox项目使用ExtAspNet作为前台展现层,SubSonic作为ORM层,SqlServer2005作为数据库,在 Asp.Net2.0基础之上实现一个企业综合管理系统所必须的基础组件。

包括用户管理,菜单管理,权限管理,组织结构管理等各个部分,虽然AppBox不是给最终用户使用的 ,但是可以作为开发人员搭建网站的一个框架,同时在项目中遇到的控件会优先在ExtAspNet中实现。

由于在AppBox中使用了log4net作为日志记录组件,所以这篇文章就来分享一下log4net的配置和使用 。

log4net配置

1. 首先到 http://logging.apache.org/ 下载最新的log4net v1.2.10。

2. 建立数据库表

01.CREATE TABLE [dbo].[Log] (
02. [Id] [int] IDENTITY (1, 1) NOT NULL,
03. [Date] [datetime] NOT NULL,
04. [Thread] [varchar] (255) NOT NULL,
05. [Level] [varchar] (50) NOT NULL,
06. [Logger] [varchar] (255) NOT NULL,
07. [Message] [varchar] (4000) NOT NULL,
08. [Exception] [varchar] (2000) NULL
09.)

3. 在网站根目录添加log4net.config文件

01.<log4net>
02. <root>
03. <level value="ALL"/>
04. <appender-ref ref="AdoNetAppender"/>
05. <appender-ref ref="RollingFileAppender"/>
06. </root>
07. <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
08. <param name="File" value="loglog.config"/>
09. <param name="AppendToFile" value="true"/>
10. <param name="MaxSizeRollBackups" value="10"/>
11. <param name="MaximumFileSize" value="5MB"/>
12. <param name="RollingStyle" value="Size"/>
13. <param name="StaticLogFileName" value="true"/>
14. <layout type="log4net.Layout.PatternLayout,log4net">
15. <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
16. </layout>
17. </appender>
18. <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
19. <bufferSize value="0"/>
20. <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
21. <connectionString value="Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=AppBox;Data Source=."/>
22. <commandText value="insert into X_Log (DATETIME,THREAD,LOG_LEVEL,LOGGER,MESSAGE,EXCEPTION) values (@log_date,@thread,@log_level,@logger,@message,@exception)"/>
23. <parameter>
24. <parameterName value="@log_date"/>
25. <dbType value="DateTime"/>
26. <layout type="log4net.Layout.RawTimeStampLayout"/>
27. </parameter>
28. <parameter>
29. <parameterName value="@thread"/>
30. <dbType value="String"/>
31. <size value="255"/>
32. <layout type="log4net.Layout.PatternLayout">
33. <conversionPattern value="%thread"/>
34. </layout>
35. </parameter>
36. <parameter>
37. <parameterName value="@log_level"/>
38. <dbType value="String"/>
39. <size value="50"/>
40. <layout type="log4net.Layout.PatternLayout">
41. <conversionPattern value="%level"/>
42. </layout>
43. </parameter>
44. <parameter>
45. <parameterName value="@logger"/>
46. <dbType value="String"/>
47. <size value="255"/>
48. <layout type="log4net.Layout.PatternLayout">
49. <conversionPattern value="%logger"/>
50. </layout>
51. </parameter>
52. <parameter>
53. <parameterName value="@message"/>
54. <dbType value="String"/>
55. <size value="4000"/>
56. <layout type="log4net.Layout.PatternLayout">
57. <conversionPattern value="%message"/>
58. </layout>
59. </parameter>
60. <parameter>
61. <parameterName value="@exception"/>
62. <dbType value="String"/>
63. <size value="2000"/>
64. <layout type="log4net.Layout.ExceptionLayout"/>
65. </parameter>
66. </appender>
67.</log4net>