<?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" autoReload="true" throwConfigExceptions="true" internalLogLevel="info" internalLogFile="E:\log\ISP\internal-nlog.txt"> <!--autoReload:修改后自動加載--> <!--throwConfigExceptions:NLog日志系統拋出異常--> <!--internalLogLevel:內部日志的級別--> <!--internalLogFile:內部日志保存路徑,日志的內容大概就是NLog的版本信息,配置文件的地址等等--> <!-- the targets to write to --> <!--輸出日志的配置,用於rules讀取--> <targets> <!-- 將日志寫入文件中 --> <target xsi:type="File" name="allfile" fileName="E:\log\ISP\nlog-all-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" /> <!--同樣是將文件寫入日志中,寫入的內容有所差別,差別在layout屬性中體現。寫入日志的數量有差別,差別在路由邏輯中體現--> <target xsi:type="File" name="ownFile-web" fileName="E:\log\ISP\nlog-own-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}|${callsite}" /> </targets> <!-- rules to map from logger name to target --> <rules> <!--路由順序會對日志打印產生影響。路由匹配邏輯為順序匹配。--> <!--All logs, including from Microsoft--> <logger name="*" minlevel="Trace" writeTo="allfile" /> <!--Skip non-critical Microsoft logs and so log only own logs--> <!--以Microsoft打頭的日志將進入此路由,由於此路由沒有writeTi屬性,所有會被忽略--> <!--且此路由設置了final,所以當此路由被匹配到時。不會再匹配此路由下面的路由。未匹配到此路由時才會繼續匹配下一個路由--> <logger name="Microsoft.*" maxlevel="Info" final="true" /> <!-- BlackHole --> <!--上方已經過濾了所有Microsoft.*的日志,所以此處的日志只會打印除Microsoft.*外的日志--> <logger name="*" minlevel="Trace" writeTo="ownFile-web" /> </rules> </nlog>