国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

log4net和SQL Server 2000

2024-08-31 00:51:12
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

log4net是在項(xiàng)目中很常用的一個(gè)日志工具,用來(lái)記錄系統(tǒng)的各種信息和一些異常情況. log4net可以把信息以各種方式輸出.關(guān)于log4net的介紹和使用,官方網(wǎng)站上有詳細(xì)的說(shuō)明.

今天在使用log4net的時(shí)候遇到幾個(gè)問(wèn)題,想和大家討論一下. 以log4net官網(wǎng)上的那個(gè)例子為例:
配置文件如下:

   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
對(duì)于其中的<buffersize value=100>是指當(dāng)log信息達(dá)到100條時(shí), log信息就會(huì)被寫(xiě)到數(shù)據(jù)庫(kù)中,但是當(dāng)我設(shè)置value=2時(shí),我發(fā)現(xiàn)當(dāng)有兩條log信息時(shí),信息并沒(méi)有被寫(xiě)到數(shù)據(jù)庫(kù)中,要到第三條log信息產(chǎn)生時(shí),前兩條log信息才被寫(xiě)到數(shù)據(jù)中,繼續(xù)有新的log信息生成時(shí)也是同樣的情況。那我就覺(jué)得log4net實(shí)現(xiàn)buffersize的機(jī)制是當(dāng)有一條新的log信息產(chǎn)生時(shí),系統(tǒng)會(huì)檢查已存在的信息是否達(dá)到buffersize了,如果到了,那就把已經(jīng)存在的Log信息寫(xiě)到數(shù)據(jù)中,而最新的那條log信息并沒(méi)有被寫(xiě)到數(shù)據(jù)庫(kù)中。

log4net通常也被用來(lái)記錄系統(tǒng)的各種異常信息,也非常方便。但是不知道log4net本生有異常時(shí),似乎并沒(méi)有任何異常信息被記錄下來(lái)(也可能是我不知道)。以上面的配置信息為例,“@message"的長(zhǎng)度被設(shè)置為4000,但是如果數(shù)據(jù)庫(kù)中字段的長(zhǎng)度沒(méi)有4000,比如250。這種設(shè)置情況很少,但是確實(shí)是一個(gè)問(wèn)題。而這個(gè)時(shí)候,buffersize value值不是0,而是比如100。那么當(dāng)?shù)?01條log信息產(chǎn)生時(shí),系統(tǒng)就會(huì)開(kāi)始把log信息寫(xiě)到數(shù)據(jù)中。而其中第一條的message信息的長(zhǎng)度超過(guò)250,這個(gè)時(shí)候就會(huì)發(fā)生異常,從這個(gè)時(shí)候開(kāi)始,所有的log信息就都不會(huì)被寫(xiě)到數(shù)據(jù)中了。也不會(huì)有任何異常信息拋出來(lái)。不知道是我的認(rèn)識(shí)不夠深入呢,還是這個(gè)真的是個(gè)問(wèn)題。

http://www.cnblogs.com/jun1st/archive/2006/09/14/503700.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 百色市| 余庆县| 湟源县| 昌宁县| 宜城市| 金山区| 威信县| 衡山县| 乾安县| 望奎县| 泗水县| 荔波县| 米林县| 沾益县| 渝北区| 平安县| 托克逊县| 澳门| 江都市| 凭祥市| 尉氏县| 河曲县| 洪湖市| 莎车县| 上饶市| 偏关县| 如皋市| 阿拉善右旗| 鄱阳县| 常州市| 泸州市| 清镇市| 礼泉县| 嫩江县| 禄劝| 商城县| 唐山市| 旌德县| 靖远县| 长阳| 望都县|