C#中四步輕松使用log4net記錄本地日志的方法
在這里,記錄我在項(xiàng)目中使用log4net記錄本地日志的步驟。在不會之前感覺很難,很神秘,一旦會了之后其實(shí)沒那么難。其實(shí)所有的事情都是一樣的,下面我就分享一下我使用log4Net的經(jīng)驗(yàn)。
第一步:首先從Visual Studio中的Nuget包管理中搜索下載 Log4Net dll文件 如下圖:
選擇安裝的項(xiàng)目(哪個(gè)類庫中需要記錄日志就勾選上)
第二步:打開配置文件 WinFrom就是 App.config Web就是 web.config 將以下配置信息加入
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <logger name="SysRFLogger"> <level value="DEBUG" /> <appender-ref ref="SysRFAppender" /> </logger> <logger name="DebugRFLogger"> <level value="DEBUG" /> <appender-ref ref="DebugAppender" /> </logger> <logger name="MsgLogger"> <level value="DEBUG" /> <appender-ref ref="MsgAppender" /> </logger> <logger name="OperInfoLogger"> <level value="DEBUG" /> <appender-ref ref="OperInfoAppender" /> </logger> <appender name="SysRFAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\syslog.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <preserveLogFileNameExtension value="true" /> <datePattern value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\sysDebuglog.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <preserveLogFileNameExtension value="true" /> <datePattern value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <appender name="MsgAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\Messagelog.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <preserveLogFileNameExtension value="true" /> <datePattern value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <appender name="OperInfoAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.30319.18020, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <commandText value="INSERT INTO LOG_USEROPERLOG ([ID],[Date],[User],[Flag],[OperInfo],[OperFlag],[OperResult],[Message]) VALUES (@Id,@log_date, @user, @flag, @operinfo,@operflag, @operresult, @message)" /> <parameter> <parameterName value="@Id" /> <dbType value="String" /> <size value="36" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{ID}" /> </layout> </parameter> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@user" /> <dbType value="String" /> <size value="64" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{User}" /> </layout> </parameter> <parameter> <parameterName value="@flag" /> <dbType value="Int32" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{Flag}" /> </layout> </parameter> <parameter> <parameterName value="@operinfo" /> <dbType value="String" /> <size value="255" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{OperInfo}" /> </layout> </parameter> <parameter> <parameterName value="@operflag" /> <dbType value="String" /> <size value="32" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{OperFlag}" /> </layout> </parameter> <parameter> <parameterName value="@operresult" /> <dbType value="String" /> <size value="255" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{OperResult}" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="4000" /> <layout type="NT.MultithreadingTaskService.Log.Layout.UserOperLayOut,NT.MultithreadingTaskService.Log"> <param name="ConversionPattern" value="%property{Message}" /> </layout> </parameter> </appender> <root> <level value="DEBUG" /> <appender-ref ref="SysRFAppender" /> </root> </log4net>
以上節(jié)點(diǎn)具體參數(shù)這里不做解釋,可以上網(wǎng)查詢幫助文檔
注意:這兩段XML要放在configuration 節(jié)點(diǎn)下靠前
第三步:打開項(xiàng)目AssemblyInfo.cs文件(UI層)
加入:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "web.config", Watch = true)]
第四步:在需要記錄日志的cs文件中初始化: private ILog _log = LogManager.GetLogger("TicketFace");
一般常用以下幾個(gè)方法:
_log.Error();
_log.Debug();
_log.Info();
最后運(yùn)行項(xiàng)目然后在以上配置文件中找到路徑去文件夾里看看就生成了日志文件了。
注意:這里日志是以天為單位記錄 如下:
以上這篇C#中四步輕松使用log4net記錄本地日志的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#模擬實(shí)現(xiàn)鼠標(biāo)自動(dòng)點(diǎn)擊與消息發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了C#如何利用windows api來模擬實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊、右擊、雙擊以及發(fā)送文本功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-08-08C#實(shí)現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法,涉及C#數(shù)組與字符串的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08非常實(shí)用的C#字符串操作處理類StringHelper.cs
這篇文章主要為大家詳細(xì)介紹了非常實(shí)用的C#字符串操作處理類StringHelper.cs,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07winform創(chuàng)建不規(guī)則窗體的方法
這篇文章主要介紹了winform創(chuàng)建不規(guī)則窗體的方法,涉及C#窗體創(chuàng)建的相關(guān)參數(shù)設(shè)置技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-09-09WPF程序?qū)⒖丶尸F(xiàn)的內(nèi)容保存成圖像
這篇文章介紹了WPF程序?qū)⒖丶尸F(xiàn)的內(nèi)容保存成圖像的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06WPF實(shí)現(xiàn)html中的table控件的示例代碼
相信很多做WPF開發(fā)的小伙伴都遇到過表格類的需求,雖然現(xiàn)有的Grid控件也能實(shí)現(xiàn),但是使用起來的體驗(yàn)感并不好,所以本文我們就來用WPF自己實(shí)現(xiàn)一個(gè)html中的table控件吧2024-03-03通過VS中的數(shù)據(jù)源選擇對話框簡單實(shí)現(xiàn)數(shù)據(jù)庫連接配置[圖]
通過VS中的數(shù)據(jù)源選擇對話框簡單實(shí)現(xiàn)數(shù)據(jù)庫連接配置[圖]...2007-03-03C# 實(shí)現(xiàn)Table的Merge,Copy和Clone
這篇文章主要介紹了C# 實(shí)現(xiàn)Table的Merge,Copy和Clone,幫助大家更好的利用c#處理文件,感興趣的朋友可以了解下2020-12-12