<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何使用 C# 中的 log4net 記錄日志

          共 2910字,需瀏覽 6分鐘

           ·

          2020-11-25 16:44

          譯文鏈接:https://www.infoworld.com/article/3120909/how-to-work-with-log4net-in-c.html

          在項(xiàng)目開(kāi)發(fā)時(shí),你可能想記錄一些應(yīng)用程序日志,這些日志包括:應(yīng)用程序執(zhí)行流,用戶行為數(shù)據(jù)或者程序的一些報(bào)錯(cuò)信息,在 .NET 世界中有非常多的日志框架,然而?log4net?是目前為止最流行的一款日志框架,它是一款開(kāi)源的項(xiàng)目(java 的 log4j 開(kāi)源移植版),并且可以將應(yīng)用程序日志輸出到不同的 target 中,eg:數(shù)據(jù)庫(kù),文件,redis,elasticsearch 等等。

          安裝 log4net

          使用?NuGet Package Manager?是安裝 log4net 最簡(jiǎn)單也是最快速的方式,假設(shè)你已經(jīng)在 Visual Studio 中創(chuàng)建了一個(gè) Console Application 項(xiàng)目,你可以通過(guò) Nuget Manager 按照下面的步驟一步一步的進(jìn)行安裝。

          • 在?Solution Explorer Window?的 project 上點(diǎn)擊右鍵。

          • 點(diǎn)擊?Manage NuGet Packages

          • 點(diǎn)擊?Online?并且在輸入框中搜索 log4net

          • 然后選擇你需要安裝的 log4net 包。

          • 點(diǎn)擊?Install?開(kāi)始進(jìn)行包安裝

          可以參考下面的圖:

          到目前為止,最新的 log4net 版本是 2.0.12,稍等片刻你會(huì)在?NuGet Package Manager?中觀察到 log4net 已經(jīng)成功安裝,同時(shí)你應(yīng)該可以觀察到 log4net 已成功添加到 project項(xiàng)目的 引用列表中了,如下圖:

          配置 log4net

          現(xiàn)在你的 log4net 已經(jīng)被成功安裝,project 的 Properties 文件夾下有一個(gè) AssemblyInfo.cs 文件,在這個(gè)文件中增加如下行,如果你沒(méi)有一些自定義的配置,可以不用考慮下面的方式。


          [assembly:?log4net.Config.XmlConfigurator(ConfigFile?=?"Log4Net.config",?Watch?=?true)]

          作為替代方案,你可以將 log4net 的配置直接送到 app.config 或者 web.config 中,使用如下配置:


          [assembly:?log4net.Config.XmlConfigurator(Watch?=?true)]

          有時(shí)候,你可能不想把 log4net 的配置信息放在 app.config 或者 web.config 中,這時(shí)候你可以專門指定一個(gè)配置文件,比如:log4net.config。


          [assembly:?log4net.Config.XmlConfigurator(ConfigFile?=?"log4net.config",?Watch?=?true)]

          接下來(lái)就需要在 app.config 或者 web.config 中指定 log4net 的一些詳細(xì)配置信息了,假定你使用的是 console 應(yīng)用程序,在 configSections 節(jié)點(diǎn)中新增一個(gè)名稱為 log4net 的 section 節(jié)點(diǎn),如下代碼所示:


          <configSections>
          ???<section?name="log4net"?type="log4net.Config.Log4NetConfigurationSectionHandler,?log4net"?/>
          configSections>

          現(xiàn)在,你可以在??節(jié)點(diǎn)之后添加一個(gè)??節(jié)點(diǎn),在??節(jié)點(diǎn)內(nèi)部添加如下的詳細(xì)配置信息。


          <log4net>
          ???<appender?name="LogFileAppender"?type="log4net.Appender.RollingFileAppender">
          ?????<param?name="File"?value="C:\\Projects\\Personal\\IDG\\IDG.log"/>
          ?????<lockingModel?type="log4net.Appender.FileAppender+MinimalLock"?/>
          ?????<appendToFile?value="true"?/>
          ?????<rollingStyle?value="Size"?/>
          ?????<maxSizeRollBackups?value="10"?/>
          ?????<maximumFileSize?value="1MB"?/>
          ?????<staticLogFileName?value="true"?/>
          ?????<layout?type="log4net.Layout.PatternLayout">
          ???????<conversionPattern?value="%date?[%thread]?%level?%logger?-?%message%newline"?/>
          ?????layout>
          ???appender>
          ???<root>
          ?????<level?value="ALL"?/>
          ?????<appender-ref?ref="LogFileAppender"?/>
          ???root>
          log4net>

          這就是 log4net 的所有配置,接下來(lái)簡(jiǎn)單瀏覽下這些配置信息,這里我在??屬性中指定了 logger 的 name 和 type,在這個(gè)例子中我使用的是RollingFileAppender,其實(shí) log4net 支持很多種的 Appender,比如 AdoNetAppender,AspNetTraceAppender,ConsoleAppender 等等,更多的 Appender 設(shè)定可以看看這個(gè)鏈接:http://logging.apache.org/log4net/release/config-examples.html

          使用 log4net

          接下來(lái)可以寫代碼了,用 LogManager 類的 靜態(tài)方法 GetLogger 來(lái)創(chuàng)建一個(gè)實(shí)例,這個(gè)實(shí)例實(shí)現(xiàn)了 ILog 接口,如下代碼所示:


          private?static?readonly?log4net.ILog?log?=?
          log4net.LogManager.GetLogger
          (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

          現(xiàn)在你可以使用這個(gè) log 實(shí)例去記錄日志到你指定的 target 中,下面的代碼段就展示了如何利用 log 去記錄日志。


          log.Debug("This?is?a?Debug?message");
          log.Info("This?is?a?Info?message");
          log.Warn("This?is?a?Warning?message");
          log.Error("This?is?an?Error?message");
          log.Fatal("This?is?a?Fatal?message");

          下面是一個(gè)完整的代碼清單,使用 log4net 去記錄異常信息到一個(gè) text 文本中。


          class?Program
          ???{
          ???????static?readonly?log4net.ILog?log?=
          ???????log4net.LogManager.GetLogger
          (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
          ???????static?void?Main(string[]?args)
          ???????{
          ???????????try
          ???????????{
          ???????????????throw?new?Exception("This?is?test?message...");
          ???????????}
          ???????????catch(Exception?ex)
          ???????????{
          ???????????????log.Error(ex.Message);
          ???????????}??????????
          ???????????Console.Read();
          ???????}
          ???}

          執(zhí)行完上面的程序之后,IDG.log 日志文件就會(huì)生成,里面會(huì)有一條我指定的異常信息,再配上一條當(dāng)時(shí)記錄日志的時(shí)間,這個(gè)時(shí)間信息非常重要,最后,除了本篇介紹的用 配置文件 的形式進(jìn)行配置,你也可以通過(guò)編程的方式進(jìn)行 log4net 配置。


          轉(zhuǎn)至微信公眾號(hào):碼農(nóng)讀書(shū)

          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天爱天天射天天爽 | 蘑菇视频logo红色 | 大香蕉久操视频 | 亚洲精品一级 | 色色免费小电影 |