layouts 用來規定佈局樣式,語法“${屬性}”,可以把上下文信息插入到日誌中,官方提供的可以用的屬性見文末附錄
<rules>標籤
<variable name="variable1" value="${basedir}/logs"/>
<targets>
<target name="File" xsi:type="File" fileName="${variable1}/${shortdate}.txt"/>
</targets>
<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<variable name="variable1" value="${newline}date: ${date}${newline}level: ${level}${newline}logger: ${logger}${newline}machinename: ${machinename}
${newline}message: ${message}${newline}appdomain: ${appdomain}${newline}assembly-version: ${assembly-version}${newline}basedir: ${basedir}
${newline}callsite: ${callsite}${newline}callsite-linenumber: ${callsite-linenumber}${newline}counter: ${counter}${newline}nlogdir: ${nlogdir}
${newline}processid: ${processid}${newline}processname: ${processname}${newline}specialfolder: ${specialfolder}
${newline}stacktrace: ${stacktrace}${newline}-----------------------------------------------------------" />
<targets>
<target name="log_file" xsi:type="File" fileName="${basedir}/LogInformation/${level}_${shortdate}.txt" layout="${variable1}" />
</targets>
<rules>
<logger name="*" writeTo="log_file" />
</rules>
</nlog>
附錄:layouts 屬性
${activityid} | 將其置入日誌System.Diagnostics trace |
${all-event-properties} | 事件日誌上下文 |
${appdomain} | 當前應用程序域 |
${assembly-version} | 應用程序 |
${basedir} | 應用程序域的基本目錄。 |
${callsite} | (類名稱、方法名稱和相關信息的源信息)。 |
${callsite-linenumber} | 調用類的 |
${counter} | 數值 |
${date} | 當前日期和時間。 |
${document-uri} | 用於Silverlight應用。 |
${environment} | 環境變量 |
${event-properties} | |
${exception} | exception信息 |
${file-contents} | 顯示指定文件的內容 |
${gc} | 垃圾收集器 |
${gdc} | 診斷上下文 |
${guid} | GUID |
${identity} | 線程標識信息 |
${install-context} | 安裝參數 |
${level} | 級別。 |
${literal} | |
${log4jxmlevent} | XML事件描述 |
${logger} | 記錄器的名字 |
${longdate} | 日期和時間的格式分類yyyy-MM-dd HH:mm:ss.ffff。 |
${machinename} | 名稱 |
${mdc} | 映射診斷 |
${mdlc} | 異步映射診斷上下文 |
${message} | 消息 |
${ndc} | 線程結構 |
${ndlc} | 異步線程 |
${newline} | 文字換行 |
${nlogdir} | nlog.dll目錄。 |
${performancecounter} | 述性能計數器。 |
${processid} | 當前進程標識符 |
${processinfo} | 運行信息 |
${processname} | 當前進程的名稱。 |
${processtime} | 該時間過程中格式HH:MM:ss.mmm。 |
${qpc} | 高精度定時器,基於返回的值從queryperformancecounter(任選地)轉換爲秒。 |
${registry} | 從註冊表中的值。 |
${sequenceid} | ID |
${shortdate} | 短時間 格式YYYY-MM-DD。 |
${sl-appinfo} | Silverlight應用。 |
${specialfolder} | 文件夾路徑 |
${stacktrace} - | 堆棧跟蹤渲染器。 |
${tempdir} | 臨時目錄中。 |
${threadid} | 當前線程的標識符。 |
${threadname} | 當前線程。 |
${ticks} | 當前日期和時間。 |
${time} | 24小時格式HH:MM:ss.mmm。 |
${var} | {$var}-提供新的變量(4.1) |
${windows-identity} | indows線程標識信息(用戶名) |
官方參考:
https://github.com/nlog/NLog/wiki/Layout%20Renderers
https://github.com/nlog/NLog/wiki/Targets
https://github.com/NLog/NLog/releases/
http://nlog-project.org/