NLog 使用示例
1 项目添加 NLog.config,Debug 目录增加dll,
2 设置 NLog.config 属性/复制到输出目录 如果较新则复制
3 项目/依赖项/添加项目引用/浏览/选择dll/添加
4 using NLog;
5 static Logger LogHelp = LogManager.GetLogger("MainWindow");
6 打印log
LogHelp.Trace("MainWindow Trace msg ...");
LogHelp.Debug("MainWindow Debug msg ...");
LogHelp.Info("MainWindow Info msg ...");
LogHelp.Warn("MainWindow Warn msg ...");
LogHelp.Error("MainWindow Error msg ...");
LogHelp.Fatal("MainWindow Fatal msg ...");
<!--<?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="console" xsi:type="Console" /><target name="logfile" xsi:type="File" fileName="${basedir}/logs/${shortdate}/log.txt"archiveFileName="${basedir}/logs/archive/app-{#}.log"archiveEvery="Day"maxArchiveFiles="30"archiveDateFormat="yyyyMMdd" ><layout xsi:type="LayoutWithHeaderFooter"><header><time format="yyyy-MM-dd HH:mm:ss" /></header><footer>${newline}</footer><pattern>${processid} - ${longdate} - ${level:uppercase=true} - ${logger} - ${message}${onexception:${newline}[Exception: ${exception:format=tostring}]}${newline}</pattern></layout></target><target name="trace_file" xsi:type="file" filename="${basedir}/logs/${shortdate}/trace.log" layout="${longdate}|${level}|${callsite}|${message}" /><target name="debug_file" xsi:type="file" filename="${basedir}/logs/${shortdate}/debug.log" layout="${longdate}|${level}|${callsite}|${message}" /><target name="info_file" xsi:type="file" filename="${basedir}/logs/${shortdate}/info.log" layout="${longdate}|${level}|${callsite}|${message}" /><!-- archiveAboveSize="1024*1024" 每个日志文件大小的最大值(单位:字节),主日志文件超过大小超过该值时会将文件内容写入滚动日志并清空主日志文件内容--><target name="warn_file" xsi:type="file" filename="${basedir}/logs/${shortdate}/warn.log" layout="${longdate}|${level}|${callsite}|${message}"/><target name="error_file" xsi:type="file" filename="${basedir}/logs/${shortdate}/error.log" layout="${longdate}|${level}|${callsite}|${message}"/><target name="fatal_file" xsi:type="file" filename="${basedir}/logs/${shortdate}/fatal.log" layout="${longdate}|${level}|${callsite}|${message}"/><!-- write log message to database --><target name="db" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard"><target type="Database" dbProvider="mssql" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=EFinance;Persist Security Info=True;User ID=sa;Password=123456;"><commandText>INSERT INTO Log(Timestamp,Level,Message,Action,Amount,StackTrace) VALUES(@time_stamp, @level, @message, @action, @amount, @stacktrace);</commandText><!-- database connection parameters --><parameter name="@time_stamp" layout="${date}" /><parameter name="@level" layout="${level:uppercase=true}" /><parameter name="@message" layout="${message}" /><parameter name="@action" layout="${event-context:item=Action}" /><parameter name="@amount" layout="${event-context:item=Amount}" /><parameter name="@stacktrace" layout="${stacktrace}" /></target></target><!--write log message to Visual Studio Output--><target name="debugger" xsi:type="Debugger" layout="NLog: ${date:format=HH\:mm\:ss} | ${level:uppercase=true:padding=-5} | ${message}" /></targets><rules><logger name="*" minlevel="Trace" writeTo="logfile, console" /><logger name="*" levels="Trace,Debug" writeTo="trace_file" /><logger name="*" level="Debug" writeTo="debug_file" enabled="true"/><logger name="*" minlevel="Info" maxlevel="Warn" writeTo="info_file"/><logger name="*" minlevel="Warn" writeTo="warn_file" enabled="true"/><logger name="*" minlevel="Error" writeTo="error_file"/><logger name="*" minlevel="Fatal" writeTo="fatal_file" enabled="true"/></rules>
</nlog>