NLog.Config
- <?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"/>
- <variable name="logFileName" value="${date:format=yyyyMMdd}.txt"/>
- <variable name="logArchiveFileName" value="${date:format=yyyyMMdd}_{#}.txt"/>
- <variable name="logLayout" value="Logger:${logger}${newline}Date:${longdate}${newline}Level:${uppercase:${level}}${newline}Message:${message} ${newline}${onexception:Exception:${exception:format=toString}${newline}}" />
- <!--
- See https://github.com/nlog/nlog/wiki/Configuration-file
- for information 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="true"
- keepFileOpen="true"
- openFileCacheTimeout="30"
- encoding="UTF-8" />
-
- <target xsi:type="File" name="debug"
- layout="${logLayout}"
- fileName="${logDir}/debug/${logFileName}"
- archiveFileName="${logDir}/debug/${logArchiveFileName}"
- archiveAboveSize="10485760"
- archiveNumbering="Sequence"
- maxArchiveFiles="100"
- concurrentWrites="true"
- keepFileOpen="true"
- openFileCacheTimeout="30"
- encoding="UTF-8" />
-
- <target xsi:type="File" name="error"
- layout="${logLayout}"
- fileName="${logDir}/error/${logFileName}"
- archiveFileName="${logDir}/error/${logArchiveFileName}"
- archiveAboveSize="10485760"
- archiveNumbering="Sequence"
- maxArchiveFiles="100"
- concurrentWrites="true"
- keepFileOpen="true"
- openFileCacheTimeout="30"
- encoding="UTF-8" />
-
- </targets>
-
- <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 name="*" minlevel="Info" maxlevel="Info" writeTo="info" />
-
- <logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="debug" />
-
- <logger name="*" minlevel="Error" maxlevel="Error" writeTo="error" />
-
- </rules>
- </nlog>
不要忘记

测试代码
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using NLog;
-
- namespace NlogTest
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
-
- private Logger _log = NLog.LogManager.GetCurrentClassLogger();
-
- private void button1_Click(object sender, EventArgs e)
- {
-
- _log.Info("信息");
-
- _log.Error("异常");
-
- int a = 0;
- int b = 0;
- try
- {
- int c = a / b;
- }
- catch (Exception ex)
- {
- _log.Error(ex,"操作异常");
- }
-
- }
- }
- }
效果
