网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.SQL Server端口更改后的数据库连.
.使用索引调节向导调整应用程序的.
.用SQL SERVER记录站点日志.
.有关BCB连接Informix数据库的参考.
.讲解Informix数据库的安全性及安.
.不同于其它大部分的SQL数据库引擎.
.MS SQL SERVER 图像或大文本的输.
.SQL Server 2000遇到的两个问题及.
.编程管理sql server的帐号.
.用一个实例讲解数据增量抽取的模.
.轻松掌握密码有效性验证失败的处.
.教你在SQL Server数据库中设计表.
.在各种数据库中如何限制检索行数.
.带你轻松接触一个数据库的备份和.
.在设计数据库时如何选择正确的数.
.自动安装sql server数据库.
.关于对sql2000查询结果进行相关度.
.经验总结:SQL Server与Oracle的.
.深入浅出SQL教程之Group by和Hav.
.巧用数据库引擎优化Tuning Advis.

log4net和SQL Server 2000

发表日期:2006-9-14


log4net是在项目中很常用的一个日志工具,用来记录系统的各种信息和一些异常情况. log4net可以把信息以各种方式输出.关于log4net的介绍和使用,官方网站上有详细的说明.

今天在使用log4net的时候遇到几个问题,想和大家讨论一下. 以log4net官网上的那个例子为例:
配置文件如下:

   1<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
 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通常也被用来记录系统的各种异常信息,也非常方便。但是不知道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

上一篇:一個Select出一個表中第N條記錄的Sql代碼 人气:6138
下一篇:SQL Server: convert varbinary to varchar 人气:6698
浏览全部SQL Server 2000的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐