一、创建项目
首先创建.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:} estLog est_logs_${shortdate}.log" 绝对路径 --> <targets> <target name="logFile" xsi:type="File" fileName="${}.TestLogDirectory elativeTest_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)