<?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); } }