首先用NuGet安装NLog依赖DLL
NLog
NLog.Config
NLog.Schema
<?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="d:\nlog\nlog-internal.log"> <!-- optional,add some variables https://github.com/nlog/NLog/wiki/Configuration-file#variables --> <variable name="myvar" value="myvalue"/>--> variable name="logDir" value="${basedir}/nlog"/> ="logFileName"="${date:format=yyyyMMdd}.txt"="logArchiveFileName"="${date:format=yyyyMMdd}_{#}.txt"="logLayout"="${date:format=yyyy-MM-dd HH\:mm\:ss.fff} [${level}] ${message}"/> See https://github.com/nlog/nlog/wiki/Configuration-file for @R_967_4045@ion on customizing logging rules and outputs. targets> add your targets here See https://github.com/nlog/NLog/wiki/Targets for possible targets. See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers. --> Write events to a file with the date in the filename. <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" /> target xsi:type="File" name="info" layout="${logLayout}" fileName="${logDir}/info/${logFileName}" archiveFileName="${logDir}/info/${logArchiveFileName}" archiveAboveSize="10485760" archiveNumbering="Sequence" maxArchiveFiles="100" concurrentWrites keepFileOpen openFileCacheTimeout="30" encoding="UTF-8" /> ="debug"="${logDir}/debug/${logFileName}"="${logDir}/debug/${logArchiveFileName}"="error"="${logDir}/error/${logFileName}"="${logDir}/error/${logArchiveFileName}"</rules> add your logging rules here Write all events with minimal level of Debug (So Debug,Info,Warn,Error and Fatal,but not Trace) to "f" <logger name="*" minlevel="Debug" writeto="f" /> logger ="*" minlevel="Info" maxlevel writeto="info" ="Debug"="debug" ="Error"="error" > nlog>
变量定义:
private Logger _log = NLog.LogManager.GetLogger("NLogTest");
或者:
private Logger _log = NLog.LogManager.GetCurrentClassLogger();
写日志示例:
private void button4_Click(object sender,EventArgs e) { Task.Run(() => { Log(==== 开始 ========"); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); List<Task> taskList = new List<Task>(); Task tsk = null; int taskCount = 0; tsk = Task.Run(() => { for (int i = 0; i < n; i++) { _log.Info(测试日志 " + i.ToString(000000)); Interlocked.Increment(ref taskCount); } }); taskList.Add(tsk); tsk = Task.Run(() =>) { _log.Debug() { _log.Error( taskCount); } }); taskList.Add(tsk); Task.WaitAll(taskList.ToArray()); Log(Task Count=" + taskCount); Log(==== 结束 " + ,耗时:" + stopwatch.Elapsed.TotalSeconds.ToString(0.000") + 秒 ========); stopwatch.Stop(); }); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。