NLog如何打印日志(.Net5)
一、创建项目
首先创建.Net5 "ASP.NET Core Web应用”的项目NLogTest5;
二、添加引用
在依赖项上右击,

选择 “管理NuGet程序包(N)”

在浏览下,输入“NLog.Web.AspNetCore”,右边选择版本“1.14.0”,点击“安装”;

安装完成后显示如下(有NLog.Web.AspNetCore(4.14.0)):

三、创建配置文件
接着在项目上右击,选择“添加”,点击“新建项”

之后,找到“web配置文件”,名称输入“nlog.config”,点击“添加”;

如此“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"
autoReload="true">
<variable name="logDirectory" value="${basedir}/logs"/>
<!--fileName="${D:}\testLog\test_logs_${shortdate}.log" 绝对路径 -->
<targets>
<target name="logFile"
xsi:type="File"
fileName="${}.\TestLogDirectory\relativeTest_logs_${shortdate}.log"
layout="${longdate}|${logger}|${uppercase:${level}}|${message}${exception}"/>
<target name="logConsole" xsi:type="Console" />
</targets>
<rules>
<logger name="Microsoft.*" minlevel="Trace" writeTo="logConsole" final="true"/>
<logger name="*" minlevel="Trace" writeTo="logFile"/>
</rules>
</nlog>
四、创建控制器
在项目文件上右击,添加,新建文件夹,文件夹名称取名“Controllers”;

接着创建控制器(步骤如下图),控制器名称为“NLogController”(用于测试),最后点击“添加”;



双击刚刚创建好的NLogController文件,

往里面写入如下代码
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
#region 引用Nlog
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using NLog.Web;
#endregion
namespace NLogTest5.Controllers
{
public class NLogController : Controller
{
public NLogController(ILogger<Program> logger)
{
Logger = logger;
}
public ILogger Logger { get; }
[Route("/NLog/Index")]
public IActionResult Index()
{
Logger.LogError($" {DateTime.Now}: testLog Error !");
return View();
}
}
}
五、在Program和Startup进行相应的依赖注入和配置
双击Program,添加代码“ .UseNLog();//配置使用NLog”


Program的代码如下:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace NLogTest5
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseNLog();//配置使用NLog
}
}
双击“Startup”

写入如下代码:
using AutoMapper;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.Formatters;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using NLogTest5.Filters;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace NLogTest5
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddMvc(config =>
{
config.EnableEndpointRouting = false;
//config.Filters.Add<JsonExceptionFilter>();
config.ReturnHttpNotAcceptable = true;
config.OutputFormatters.Add(new XmlSerializerOutputFormatter());
}).SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_3_0);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app,
IWebHostEnvironment env,
ILoggerFactory loggerFactory
)
{
#region 默认
//if (env.IsDevelopment())
//{
// app.UseDeveloperExceptionPage();
//}
//else
//{
// app.UseExceptionHandler("/Error");
//}
//app.UseStaticFiles();
//app.UseRouting();
//app.UseAuthorization();
//app.UseEndpoints(endpoints =>
//{
// endpoints.MapRazorPages();
//});
#endregion
loggerFactory.AddNLog();
env.ContentRootPath = "nlog.config";
app.UseHttpsRedirection();
app.UseMvc();
}
}
}
六、运行项目
在浏览器上输入http://localhost:14206/NLog/Index,将会出现异常;

再来看文件夹是否有了日志(如下图,有日志了)

打开日志,下图是我测试出来的日志记录,表示日志打印成功!

(关注到其他的NLog: https://www.cnblogs.com/zhangchengye/p/6297685.html)

浙公网安备 33010602011771号