nlog 配置

using NLog;
using NLog.Config;
using NLog.Targets;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dben.CommonLib
{
    public static class NLogDefaultConfig
    {
        public static void InitNlogInfo()
        {
            const string layout = @"${date:format=HH:mm:ss}[${logger}]${message}";

            var consoleTarget = new ColoredConsoleTarget()
            {
                Layout = layout
            };

            var fileTarget = new FileTarget()
            {
                FileName = "${basedir}/logs/${logger}/${shortdate}.txt",
                Layout = layout
            };

            var config = new LoggingConfiguration();
            config.AddTarget("console", consoleTarget);
            config.AddTarget("file", fileTarget);

            config.LoggingRules.Add(new LoggingRule("*", LogLevel.Info, consoleTarget));
            config.LoggingRules.Add(new LoggingRule("*", LogLevel.Info, fileTarget));

            LogManager.Configuration = 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"
      autoReload="true"
      internalLogLevel="Trace"
      internalLogFile="D:LogFiles
log.internal.log.txt">
  
  <!--<variable name="gmailUsername" value="${trim-whitespace:${file-contents:${basedir}/gmailusername.txt}}" />
  <variable name="gmailPassword" value="${trim-whitespace:${file-contents:${basedir}/gmailpassword.txt}}" />-->

  <!-- define various log targets -->
  <targets>
    <!-- write logs to file -->
    <target xsi:type="File" name="file" fileName="D:LogFiles${logger}${shortdate}.log"
            layout="${longdate} ${aspnet-request:servervariable=URL} ${uppercase:${level}} ${message}" />
   </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="file" />
  </rules>
</nlog>

二选一

原文地址:https://www.cnblogs.com/zhuwansu/p/10836984.html