国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Log4net 簡(jiǎn)明手冊(cè)
常見(jiàn)面,卻不怎么用,究其原因還是覺(jué)得太復(fù)雜了點(diǎn)。不過(guò),這東西出現(xiàn)次數(shù)越來(lái)越頻繁,也只好寫(xiě)點(diǎn)東西,以備后用。本文僅對(duì) Log4net 的使用做個(gè)簡(jiǎn)要說(shuō)明,所有涉及到擴(kuò)展和開(kāi)發(fā)的部分一概忽略。

使用 Log4net,需要熟悉的東東有 Logger、Appender 以及 Layout。Logger 是日志記錄器,我們使用其相關(guān)方法來(lái)完成日志記錄;Appender 用于設(shè)置日志的存儲(chǔ)方式和位置,Logger 的配置中會(huì)綁定一個(gè)或多個(gè) Appender;Layout 關(guān)聯(lián)具體的 Appender,用于設(shè)置日志字符串的格式。

1. Logger

所有的記錄器都必須實(shí)現(xiàn) ILog 接口,該接口提供日志記錄所需的大量方法。
public interface ILog : ILoggerWrapper
{
  void Debug(...);
  void Error(...);
  void Fatal(...);
  void Info(...);
  void Warn(...);

  bool IsDebugEnabled { get; }
  bool IsErrorEnabled { get; }
  bool IsFatalEnabled { get; }
  bool IsInfoEnabled { get; }
  bool IsWarnEnabled { get; }
}

通常情況下,我們通過(guò) LogManager.GetLogger() 來(lái)獲取一個(gè)記錄器。LogManager 內(nèi)部維護(hù)一個(gè) hashtable,保存新創(chuàng)建 Logger 引用,下次需要時(shí)直接從 hashtable 獲取其實(shí)例。
ILog log = LogManager.GetLogger(this.GetType());
log.Debug("aaaaaaaaaaaaaaa");

所有 Logger 的參數(shù)設(shè)置都直接或間接繼承自 root,其繼承關(guān)系類(lèi)似 namespace。比如,名為 "MyLogger.X.Y" 參數(shù)設(shè)置繼承自 "MyLogger.X"。當(dāng)我們創(chuàng)建 "MyLooger.X.Y" 記錄器時(shí),會(huì)在配置文件找該名稱(chēng)的記錄器設(shè)置,如果沒(méi)找到,則按繼承關(guān)系向上查找,直到 root。因此,在創(chuàng)建 Logger 時(shí),我們通常使用類(lèi)型名稱(chēng)做為記錄器的名字,缺省情況下,它會(huì)使用 root 或某一個(gè)父配置,但在需要的時(shí)候,我們隨時(shí)可以為具體的類(lèi)型添加一個(gè)更加 "詳細(xì)" 的配置。
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
    </layout>
  </appender>

  <logger name="Learn.Library.Log4netTest">
    <level value="ALL" />
  </logger>

  <root>
    <level value="OFF" />
    <appender-ref ref="Console" />
  </root>
</log4net>


在創(chuàng)建 Logger 設(shè)置時(shí),需要注意 "level" 參數(shù)。Log4net 允許我們通過(guò)該參數(shù)調(diào)整日志記錄級(jí)別,只有高于或等于該級(jí)別的日志才會(huì)被記錄下來(lái)。比如在代碼調(diào)試階段,我們可能希望記錄所有的信息,而在部署階段,我們只希望記錄級(jí)別更高的錯(cuò)誤信息。這個(gè)參數(shù)的好處是允許我們?cè)诓恍薷拇a的前提下,隨時(shí)調(diào)整記錄級(jí)別。
(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)

"appender-ref" 參數(shù)用于綁定一個(gè)或多個(gè)具體的 Appender。
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
  </appender>

  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  </appender>

  <root>
    <level value="DEBUG" />
    <appender-ref ref="Console" />
    <appender-ref ref="RollingFile" />
  </root>
</log4net>

2. Appender / Layout

Log4net 提供了大量的 Appender,最常用的包括 AdoNetAppender、AspNetTraceAppender、ConsoleAppender、FileAppender、OutputDebugStringAppender。每種 Appender 都有特定一些參數(shù),使用時(shí)直接從 《Log4net 手冊(cè)》的示例中拷貝過(guò)去,就OK了。(代碼摘自 Log4net 手冊(cè))

(1) AspNetTraceAppender
<appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>

(2) ConsoleAppender
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>

(3) OutputDebugStringAppender
<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender" >
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>

(4) FileAppender
<appender name="FileAppender" type="log4net.Appender.FileAppender">
  <file value="log-file.txt" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>

有關(guān) Layout 詳細(xì)信息,請(qǐng)參考 Log4net 相關(guān)文檔,本文不做詳述。

3. Configuration

Log4net 的配置方式十分靈活,即可以寫(xiě)到應(yīng)用程序配置文件中,也可以使用獨(dú)立配置文件。同時(shí)它還提供了監(jiān)測(cè)配置文件變化的功能,這樣我們隨時(shí)可以調(diào)整配置,而無(wú)須重啟應(yīng)用程序。

(1) 使用 app.config / web.config

app.config / web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="Console" />
    </root>
  </log4net>
</configuration>

使用代碼初始化配置。
log4net.Config.XmlConfigurator.Configure();

(2) 使用自定義配置文件

test.log4net
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
    </layout>
  </appender>
  
  <root>
    <level value="DEBUG" />
    <appender-ref ref="Console" />
  </root>
</log4net>

使用代碼初始化配置。
log4net.Config.XmlConfigurator.Configure(new FileInfo("test.log4net"));

使用 XmlConfigurator.ConfigureAndWatch() 方法除了初始化配置外,還會(huì)監(jiān)測(cè)配置文件的變化,一旦發(fā)生修改,將自動(dòng)刷新配置。

(3) XmlConfiguratorAttribute

我們還可以使用 XmlConfiguratorAttribute 代替 XmlConfigurator.Config()/ConfigureAndWatch(),ConfiguratorAttribute 用于定義與 Assembly 相關(guān)聯(lián)的配置文件名。

方式1: 關(guān)聯(lián)到 test.log4net,并監(jiān)測(cè)變化。
[assembly: log4net.Config.XmlConfigurator(ConfigFile="test.log4net", Watch=true)]

方式2: 關(guān)聯(lián)到 test.exe.log4net (或 test.dll.log4net,文件名前綴為當(dāng)前程序集名稱(chēng)),并監(jiān)測(cè)變化。
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
CSDN技術(shù)中心 Log4Net使用指南
ASP.NET中使用Apache log4net - .NET2.0 成功在于總結(jié) - 博...
開(kāi)源組件應(yīng)用系列:Log4net之基本配置(收藏)
C#使用Topshelf創(chuàng)建Windows服務(wù)
c#中 log4net 日志使用
.NET Core log4net 使用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服