在.NET 6 下简单使用NLog

    Nlog是.NET几大成熟的日志框架,可以配置写入到文件,也可以配置写入到数据库,从.net framework开始就比较成熟了。到了.NET Core时代,NLog也紧跟时代,现在已经更新到5.0版本。本文将讲述NLog在.NET6下的简单使用。

一、环境准备

新建一个.NET6的MVC项目,并在nuget添加NLog包,由于是asp.net mvc项目需要如下包NLog.Web.AspNetCore。安装命令如下:

install-package NLog.Web.AspNetCore

二、添加项目配置文件nlog.config

点击项目右键添加nlog.config文件,然后复制下面的Xml内容





  
  
    
  


  
  


    
    
      
    


    
    
    
  


  
  


    
    
    
    


  

layout是配置日期等布局格式。

rules节点是配置日志的级别,跟微软默认的日志级别类似。如果使用appsettings.json的日志级别需要配置RemoveLoggerFactoryFilter = false

在.NET 6 下简单使用NLog_第1张图片

三、在Program.cs添加Nlog组件

using NLog;
using NLog.Web;


var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
logger.Debug("init main");
try
{


var builder = WebApplication.CreateBuilder(args);


// Add services to the container.
builder.Services.AddControllersWithViews();


// NLog:注册Nlog组件
builder.Logging.ClearProviders();
builder.Host.UseNLog();




var app = builder.Build();


// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();


app.UseRouting();


app.UseAuthorization();


app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");


app.Run();
}
catch (Exception exception)
{
    // NLog: 抓取全局错误
    logger.Error(exception, "Stopped program because of exception");
    throw;
}
finally
{
    // 确保在跑出异常停止线程 (避免在linux中报错)
    NLog.LogManager.Shutdown();
}

四、日志使用

配置完成就可以使用Nlog了,跟默认的日志注入一样,代码如下:

private readonly ILogger _logger;


        public HomeController(ILogger logger)
        {
            _logger = logger;
        }
        public IActionResult Index()
        {
            _logger.LogInformation("Hello,这是主页面!");
            return View();
        }

五、查看日志

以上工作完成后就可以在生成环境里logs里的日志文件了。

在.NET 6 下简单使用NLog_第2张图片

篇幅有限具体说明请看官方文档

https://github.com/NLog/NLog

源码链接:

https://pan.baidu.com/s/1T8HU06y4C1JxzRty5AAHEg?pwd=0qae

技术群:添加小编微信并备注进群
小编微信:mm1552923   公众号:dotNet编程大全

你可能感兴趣的:(java,vue,log4j,log4j2,logging)