国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

log4net和SQL Server 2000

瀏覽:139日期:2023-10-31 09:50:06

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

今天在使用log4net的時(shí)候遇到幾個(gè)問題,想和大家討論一下. 以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對于其中的<buffersize value=100>是指當(dāng)log信息達(dá)到100條時(shí), log信息就會被寫到數(shù)據(jù)庫中,但是當(dāng)我設(shè)置value=2時(shí),我發(fā)現(xiàn)當(dāng)有兩條log信息時(shí),信息并沒有被寫到數(shù)據(jù)庫中,要到第三條log信息產(chǎn)生時(shí),前兩條log信息才被寫到數(shù)據(jù)中,繼續(xù)有新的log信息生成時(shí)也是同樣的情況。那我就覺得log4net實(shí)現(xiàn)buffersize的機(jī)制是當(dāng)有一條新的log信息產(chǎn)生時(shí),系統(tǒng)會檢查已存在的信息是否達(dá)到buffersize了,如果到了,那就把已經(jīng)存在的Log信息寫到數(shù)據(jù)中,而最新的那條log信息并沒有被寫到數(shù)據(jù)庫中。

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

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

標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: 德钦县| 正阳县| 辛集市| 武清区| 库车县| 赣州市| 右玉县| 扶风县| 河南省| 锦屏县| 葵青区| 沂水县| 宁德市| 华安县| 安图县| 上犹县| 工布江达县| 奈曼旗| 榕江县| 东城区| 合江县| 达尔| 新乡市| 盈江县| 安陆市| 青河县| 兴城市| 宿迁市| 治县。| 岳阳市| 英德市| 临潭县| 石泉县| 留坝县| 错那县| 金溪县| 六安市| 杂多县| 赞皇县| 酉阳| 琼中|