.NET 配置Nlog

310 阅读1分钟

下载插件

image.png

修改program配置

#region Nlogin
{
    // nuget引入

    builder.Logging.AddNLog("CfgFile/Nlog.config");
}
#endregion

创建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="c:\temp\nlog-internal.log">

	<variable name="appName" value="ConsoleAppDemo"/>

	<targets>
		<target name="logconsole" xsi:type="Console"
				layout="${longdate} [${uppercase:${level}}] ${callsite}(${callsite-filename:includeSourcePath=False}:${callsite-linenumber}) - ${message} ${exception:format=ToString}"
		/>

		<target name="logfile"
				xsi:type="File"
				fileName="${basedir}/logs/${appName}-${shortdate}.log"
				layout="${longdate} [${uppercase:${level}}] ${callsite}(${callsite-filename:includeSourcePath=False}:${callsite-linenumber}) - ${message} ${exception:format=ToString}"
				maxArchiveFiles="999"
				archiveFileName="${basedir}/logs/${appName}-${shortdate}-${###}.log"
				createDirs="true"
				archiveAboveSize="102400"
				archiveEvery="Day"
				encoding="UTF-8"
		/>

	</targets>

	<rules>
		<logger name="*" minlevel="Debug" writeTo="logfile" />
	</rules>
</nlog>

设置文件属性

image.png

controller

using Microsoft.AspNetCore.Mvc;
using NLog;
using System.Diagnostics;
using WebApplication3.Models;

namespace WebApplication3.Controllers
{
    public class SecondController : Controller
    {
        private readonly ILogger<SecondController> _logger;
        private readonly ILoggerFactory _loggerFactory;

        private readonly Logger logger = LogManager.GetCurrentClassLogger();
        
        public IActionResult Index()
        {
            logger.Info("启动成功");
            logger.Warn("警告信息");
            logger.Trace("一般信息");
            logger.Error("错误信息");
            logger.Fatal("严重信息");
            return View();
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }


        public SecondController(ILogger<SecondController> logger, ILoggerFactory loggerFactory)
        {
            this._logger = logger;
            this._logger.LogInformation($"{this.GetType().Name} 被构造了...");

            this._loggerFactory = loggerFactory;
            ILogger<SecondController> _logger2= this._loggerFactory.CreateLogger<SecondController>();
            _logger2.LogInformation($"{this.GetType().Name} 被构造了...logger2");


        }

    }
}

查看日志文件

image.png

image.png

参考地址

blog.csdn.net/qq_33182090…