ASP.NET应用程序使用NLog记录日志
在上一家公司就在使用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
轉載于:https://www.cnblogs.com/EddyPeng/archive/2012/08/24/2653634.html
總結
以上是生活随笔為你收集整理的ASP.NET应用程序使用NLog记录日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlite 增删改查附代码
- 下一篇: python ConfigParser