添加NLog插件
修改NLog配置文件
可以通过Nuget安装,NLogConfigure
手工添加NLog.Configure文件,如下
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using NLog;
using Web.Models;
namespace Web.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _log;
public HomeController(ILogger<HomeController> log) => _log = log;
static Logger logger = LogManager.GetCurrentClassLogger();
public IActionResult Index()
{
logger.Info("测试日志乱码");
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 });
}
}
}
修改StartUp.cs文件
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseRequestIP();
loggerFactory.AddNLog();
env.ConfigureNLog("NLog.configure");
app.Use(async (context, next) =>
{
context.Items["IsVerified"] = true;
await next.Invoke();
});
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
//app.UseDirectoryBrowser();
app.UseAuthentication();
app.UseSession();
app.UseMvc(routes =>
{
routes.MapRoute(
name:"area",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
使用NLog
public class HomeController : Controller
{
private readonly ILogger<HomeController> _log;
public HomeController(ILogger<HomeController> log) => _log = log;
static Logger logger = LogManager.GetCurrentClassLogger();
public IActionResult Index()
{
logger.Info("测试日志乱码");
return View();
}
}
看看
好厉害,谢谢