多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > log4net.config 將日記同時寫入到數據庫和文件當中

log4net.config 將日記同時寫入到數據庫和文件當中

來源:程序員人生   發布時間:2015-05-07 09:38:27 閱讀次數:4253次

《1》

1》在項目中新建新建1個log4net.config的配置文件。

2》從log4net官網下面log4net的文件包,然后在包的bin文件夾下的net文件夾中的4.0文件夾中找到log4net.dll文件,然后將它引入到我們的項目中來

<?xml version="1.0" encoding="utf⑻"?> <configuration> <configSections> <!--配置1個結點 名稱為log4net--> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <!--寫入到文件--> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> <!--文件路徑,如果RollingStyle為Composite或Date,則這里設置為目錄,文件名在DatePattern里設置,其他則這里要有文件名。已擴大支持虛擬目錄--> <param name="File" value="LogLogInfo" /><!--將日記寫入到跟目錄下面的Log文件夾下面的LogInfo文件夾下面的yyyy-MM-dd.TXT文件中--> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaximumFileSize" value="10240KB" /> <param name="StaticLogFileName" value="false" /> <param name="RollingStyle" value="Date" /> <param name="DatePattern" value="yyyy-MM-dd.TXT" /> <!--TXT后綴必須是大寫的,否則有問題--> <param name="CountDirection" value="⑴" /> <!--log4net記錄毛病的格式(即:用甚么樣的格式(布局)來記錄毛病)--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value=" 【時間】:%d%n 【級別】:%p%n 【類名】:%c%n 【線程ID】: %thread %n 【文件地址】:%F 第%L行%n 【日志內容】:%m%n 【日記詳細】:%exception %n---------------------------------------------------------------------------------------------------------------%n" /> </layout> </appender> <!--將日記寫入數據庫--> <appender name="ADONetAppender_SqlServer" type="log4net.Appender.ADONetAppender"> <bufferSize value="0" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <!--<connectionString value="SERVER=FB-VAIO;DATABASE=sales;UID=sa;PWD=123456;Connect Timeout=15;" />--> <connectionString value="Data Source=FB-VAIO;Initial Catalog=sales;Integrated Security=SSPI;Connect Timeout=15;" /> <commandText value="INSERT INTO xlog ([Date],[Thread],[Level],[logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> </parameter> <parameter> <parameterName value="@thread"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%t"/> </layout> </parameter> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%p"/> </layout> </parameter> <parameter> <parameterName value="@logger"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger"/> </layout> </parameter> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="4000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%m"/> </layout> </parameter> <parameter> <parameterName value="@exception"/> <dbType value="String"/> <size value="2000"/> <layout type="log4net.Layout.ExceptionLayout"> <conversionPattern value="%exception"/> </layout> </parameter> </appender> <!--在出現甚么級別的毛病才記錄毛病 【注意:如果有多個appender-ref的時候,應當給他們放到同1個root節點下】--> <root> <level value="ALL" /> <appender-ref ref="LogFileAppender"/> <appender-ref ref="ADONetAppender_SqlServer"/> </root> </log4net> </configuration>
如果項目是webForm利用程序,那末可以在根目錄下找到Properties文件下面的AssemblyInfo.cs類。打開它,AssemblyInfo.cs類的最后面添加1段代碼:以下:

//ConfigFile="log4net.config"表示:我們配置文件的路徑為網站根目錄下的mylognet4.config這個配置文件,這樣程序運行的時候就會依照這個路徑來讀取這個配置文件 //Watch:log4net框架用這個屬性來肯定是不是需要在運行時監視文件的改變,如果這個屬性為true,那末FilsSystemWatcher將會被用來監視文件的改變,重命名,刪除等事件。(即:如果這個配置文件產生變化的時候它是不是自適應這個變化,也就是說它會自動的去讀取這個變化,而不需要重新啟動這個正在運行的這個web利用程序) //其實如果我們吧log4net的配置文件直接配置在web.config文件里,這里就不需要在配置了。這里之所以需要配置是由于我們是獨立建立的1個log4net配置文件,為了讓它與我們的程序關聯起來,在這里,需要對我們建立的log4net配置文件進行讀取,加載到我們的程序當中 [assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config", Watch = true)]
那如果項目不是webForm利用程序,或項目中沒有AssemblyInfo.cs這個類,怎樣辦呢? 答:那我們可以在項目跟目錄下創建1個Global.asax文件

在Global.asax文件的protected void Application_Start(object sender, EventArgs e)方法中添加1段代碼,代碼以下:

protected void Application_Start(object sender, EventArgs e) { string filePath = Server.MapPath("~/log4net.config"); FileInfo fil = new FileInfo(filePath); log4net.Config.XmlConfigurator.Configure(fil); //將 //其實以上3句代碼可以用下面這1句替換 //log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/log4net.config"))); }
注意:我們上面的兩段代碼主要的功能就是將我們新建的log4net.config這個配置文件加載到我們的項目中去(由于我們新建的log4net.config配置文件與我們項目是沒有關系的,所以這里需要將它加載到我們的項目中去)如果在AssemblyInfo.cs文件中加載了,就不需要在Global.asax文件里再加載1次了。(根據愛好,二者選其1)


在項目中添加WebForm1.aspx文件,我們拖1個button控件到我們的WebForm1.aspx頁面中來,button控件 命名 ”請點擊按鈕,測試毛病“

雙擊button控件,給它添加單擊事件,代碼以下:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using log4net; using System.Reflection; namespace WebTest { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { int x = 6; int y = 0; try { int z = x / y; } catch (Exception ex) { //Getlogger()靜態方法,用來檢索框架里是不是存在logger對象,如果不存在就創建1個名字為logger的對象 //log4net.ILog log = log4net.LogManager.GetLogger("WebLogger");//這個WebLogger其實就是配置文件中的logger的name屬性名稱。它代表的是毛病的類名 log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);//自獲得出錯的類 if (log.IsErrorEnabled) { log.Error("毛病:"+ex.Message,ex); } Response.Write("OK"); } } } }

然后我們在數據中新建1個表 命名為 xlog  表結構以下:



好了。現在可以看測試效果了,運行我們的項目。 


點擊頁面上的按鈕。 然后我們再去我們數據庫中的xlog表中查看1下數據,發現已有1條毛病日記寫入到表中了。

我們再去項目所在的磁盤目錄下  ,在項目文件夾下面我們看到生成了1個log文件夾,在log文件夾下面有1個loginfo文件夾,loginfo文件夾下面有1個以當前日期命名的txt文件,這個文件就是我們剛剛生成的毛病日記了。打開看1下:



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本大臿亚洲香蕉大片 | 日韩一区二区三区免费视频 | 中文字幕一区二区三区亚洲精品 | 午夜免费 | 波多野结衣一区二区三区 | 性欧美videos hd高清 | 国产精品18久久久久网站 | 国产精品无码久久av | 欧美日韩亚洲综合在线一区二区 | 2018一级毛片免费观看 | 日韩高清片 | 亚洲人成在线影院 | 亚洲天堂亚洲天堂 | 欧美精品久久久久久久免费观看 | 波多野结衣久久国产精品 | 亚洲一区二区欧美日韩 | 亚洲欧美在线免费观看 | 大香伊蕉在人线国产75视频 | 五月婷婷综合在线 | 国产精品亚洲精品不卡 | 国产在线观看成人 | 91免费福利视频 | 久久免费视频一区 | 波多野结衣一级视频 | 亚洲在线不卡 | 在线xxx| 日韩亚洲一区中文字幕在线 | 91四虎国自产在线播放线 | 久久久久久久久久久观看 | 欧美精品在线一区 | www一片黄| 亚洲国产综合网 | 女人洗澡一级特黄毛片 | l欧美18一19sex性 | 午夜影院免费看 | 夜夜骑狠狠干 | 秋霞毛片 | 婷婷激情五月 | 国产成人综合亚洲一区 | 中文字幕最新中文字幕中文字幕 | avtt亚洲 |