log4net是在项目中很常用的一个日志工具,用来记录系统的各种信息和一些异常情况. log4net可以把信息以各种方式输出.关于log4net的介绍和使用,官方网站上有详细的说明. 今天在使用log4net的时候遇到几个问题,想和大家讨论一下. 以log4net官网上的那个例子为例: 1<appender name=”AdoNetAppender” type=”log4net.Appender.AdoNetAppender”> log4net通常也被用来记录系统的各种异常信息,也非常方便。但是不知道log4net本生有异常时,似乎并没有任何异常信息被记录下来(也可能是我不知道)。以上面的配置信息为例,“@message“的长度被设置为4000,但是如果数据库中字段的长度没有4000,比如250。这种设置情况很少,但是确实是一个问题。而这个时候,buffersize value值不是0,而是比如100。那么当第101条log信息产生时,系统就会开始把log信息写到数据中。而其中第一条的message信息的长度超过250,这个时候就会发生异常,从这个时候开始,所有的log信息就都不会被写到数据中了。也不会有任何异常信息抛出来。不知道是我的认识不够深入呢,还是这个真的是个问题。 http://www.cnblogs.com/jun1st/archive/2006/09/14/503700.html
配置文件如下:
2 <bufferSize value=”100″ />
3 <connectionType value=”System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ />
4 <connectionString value=”data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]” />
5 <commandText value=”INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)” />
6 <parameter>
7 <parameterName value=”@log_date” />
8 <dbType value=”DateTime” />
9 <layout type=”log4net.Layout.RawTimeStampLayout” />
10 </parameter>
11 <parameter>
12 <parameterName value=”@thread” />
13 <dbType value=”String” />
14 <size value=”255″ />
15 <layout type=”log4net.Layout.PatternLayout”>
16 <conversionPattern value=”%thread” />
17 </layout>
18 </parameter>
19 <parameter>
20 <parameterName value=”@log_level” />
21 <dbType value=”String” />
22 <size value=”50″ />
23 <layout type=”log4net.Layout.PatternLayout”>
24 <conversionPattern value=”%level” />
25 </layout>
26 </parameter>
27 <parameter>
28 <parameterName value=”@logger” />
29 <dbType value=”String” />
30 <size value=”255″ />
31 <layout type=”log4net.Layout.PatternLayout”>
32 <conversionPattern value=”%logger” />
33 </layout>
34 </parameter>
35 <parameter>
36 <parameterName value=”@message” />
37 <dbType value=”String” />
38 <size value=”4000″ />
39 <layout type=”log4net.Layout.PatternLayout”>
40 <conversionPattern value=”%message” />
41 </layout>
42 </parameter>
43 <parameter>
44 <parameterName value=”@exception” />
45 <dbType value=”String” />
46 <size value=”2000″ />
47 <layout type=”log4net.Layout.ExceptionLayout” />
48 </parameter>
49</appender>
50
对于其中的<buffersize value=100>是指当log信息达到100条时, log信息就会被写到数据库中,但是当我设置value=2时,我发现当有两条log信息时,信息并没有被写到数据库中,要到第三条log信息产生时,前两条log信息才被写到数据中,继续有新的log信息生成时也是同样的情况。那我就觉得log4net实现buffersize的机制是当有一条新的log信息产生时,系统会检查已存在的信息是否达到buffersize了,如果到了,那就把已经存在的Log信息写到数据中,而最新的那条log信息并没有被写到数据库中。
log4net和sql server 2000_数据库技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » log4net和sql server 2000_数据库技巧
相关推荐
-      sql语句中的判断功能的使用方法
-      sql语句中的判断功能的使用方法
-      SQL语言中去掉小数点有效数字后面的所有0
-      在sql语句中实现md5功能
-      ASP连接各种数据库的代码
-      给access数据库减肥
-      asp连接access数据库代码(2)
-      更改 SQL Server 登录模式