<?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"> <variable name="logDirectory" value="E:/Log"/> <!--<targets> <default-wrapper xsi:type="AsyncWrapper"></default-wrapper> <target xsi:type="File" name="file-api-log" fileName="${logDirectory}/api_logs/${shortdate}.txt" layout ="${longdate} ${message}"/> <target xsi:type="File" name="file-api-log-error" fileName="${logDirectory}/api_logs_error/${shortdate}.txt" layout ="${longdate} ${message}"/> </targets>--> <-- 按照小時記錄 --> <targets> <default-wrapper xsi:type="AsyncWrapper"></default-wrapper> <target xsi:type="File" name="file-api-log" fileName="${basedir}/api_logs/${date:format=yyyy-MM-dd-HH}.txt" layout ="${longdate} ${message}"/> <target xsi:type="File" name="file-api-log-error" fileName="${basedir}/api_logs_error/${date:format=yyyy-MM-dd-HH}.txt" layout ="${longdate} ${message}"/> </targets> <rules> <logger name="api-log" minlevel="Info" writeTo="file-api-log"></logger> <logger name="api-log-error" minlevel="Error" writeTo="file-api-log-error"></logger> </rules> </nlog>
Nlog常用的一些變量
${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線程標識信息(用戶名)
c# 調用:
public class NLogHelper { private static Logger _logger = LogManager.GetLogger("api-log"); public static void LogInfo(string message, string methodName = "") { //string methodmsg = string.IsNullOrEmpty(methodName)?"":string.Format("{}") _logger.Info(message); } private static Logger _loggerError = LogManager.GetLogger("api-log-error"); public static void LogError(string message, string methodName = "") { _loggerError.Error(message); } public static void LogDBError(string message, string methodName = "") { _loggerError.Info(message); } }