ASP.NET應用程式使用NLog記錄日誌

來源:互聯網
上載者:User

  在上一家公司就在使用NLog做日誌記錄,調用方便又好配置,查看日誌非常方便。所以在新公司新項目中就想到了它。背景交代完畢。

  先看配置,在ASP.NET應用程式中,NLog會自動掃描以下這幾個檔案

1)web.config
2)與web.config在同一目錄下的web.nlog檔案
3)程式目錄下的NLog.config檔案
4)NLog.dll所在目錄下的NLog.dll.nlog檔案

   我們按第一種檔案配置,那麼下面就是web.config設定檔中的內容

<configSections>

  <!--Nlog-->

  <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" restartOnExternalChanges="false"/>

</configSections>

<nlog>

  <include file="${basedir}/Configuration/NLog.config" />

</nlog>

  然後就是NLog.config。這個檔案的內容看名字就知道,是NLog的具體行為的配置資訊,樣本如下

<?xml version="1.0" encoding="utf-8"?>
< nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
    <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
  </targets>
  <rules>
    <logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Info" writeTo="console"/>
    <logger name="*" minlevel="Trace" writeTo="console"/>
    <logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Error" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
  </rules>
< /nlog>

  下面我們一個一個配置節點來說明

  首選說明,NLog的設定檔大小寫是敏感的,一定要注意。

< nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  命名空間可以配置,也可以不配置。如果配置了命名空間,那麼就可以使用VS的智能感知了

<targets>
    <target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
    <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
</targets>

  定義每種日誌記錄方式的輸出。樣本中定義了兩種輸出方式,分別是File和Console形式,

  name:節點/輸出名稱

  xsi:type:輸出類型

  fileName:日誌的檔案名稱

  layout:這是NLog比較出彩的一個特性,布局功能。格式是${}。在括弧中可以定義日期、log記錄層級、調用程式等上下文資訊。既可以規範的命名檔案,也可以記錄在日誌中,方便分析。

<rules>
    <logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Info" writeTo="console"/>
    <logger name="*" minlevel="Trace" writeTo="console"/>
    <logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Error" writeTo="exceptionFile"/>
    <logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
</rules>

  name:記錄日誌的名字。可以使用萬用字元*

  minlevel:記錄日誌的最低層級,如配置為Debug,那麼所有高於等於這個層級的日誌都會寫到記錄檔裡。當然也可以指定maxlevel或者單一level,如level=“Debug”,那麼只記錄Debug層級的資訊。也可以指定levels,格式為levels=“Debug,Info”。

  writeTo:寫入的目標記錄檔

  設定檔就這麼多,接下來就應該是程式調用了,聲明一個公開變數,如下 

public static Logger logger = LogManager.GetCurrentClassLogger();

  在該類的方法中使用

logger.Info("我是EddyPeng,感謝閱讀!")

 

  好了,NLog的簡單應用就到這裡,相信如果只是簡單的使用,這篇文章應該就已經足夠了。如果有更深入的學習需求,可以移步以下兩個地址

http://www.cnblogs.com/dflying/category/78087.html

http://nlog-project.org/wiki

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.