首页 > 数据库 >dotnet6 nlog依赖注入和数据库写入

dotnet6 nlog依赖注入和数据库写入

时间:2022-11-08 02:22:05浏览次数:71  
标签:Logging app dotnet6 写入 NLog https org nlog logger

aspnetcore6,自身携带的四种Logging providers:Console/Debug/EventSource/EventLog (Windows only)

Logging providers - .NET | Microsoft Learn

功能有限,使用专业性更强的第三方logging provider,例如NLog(https://nlog-project.org/)

步骤:

1,创建aspnetcore6 web项目(带控制的webapi或者mvc)后,首先安装 4个依赖包

NLog:  https://www.nuget.org/packages/NLog/5.0.4

NLog.Web.AspNetCore:  https://www.nuget.org/packages/NLog.Web.AspNetCore/5.1.0

NLog.Extensions.Logging:  https://www.nuget.org/packages/NLog.Extensions.Logging/5.0.1

NLog.Database(写入到数据库):  https://www.nuget.org/packages/NLog.Database/5.0.4

 

 

 

2,配置appsettings.json (NLog configuration with appsettings.json · NLog/NLog.Extensions.Logging Wiki (github.com))

如果使用nlog.config,nlog5.0版本不再自动加载nlog扩展(Nlog.Database等),需要配置autoloadExtensions=“true”

<nlog autoloadExtensions="true">
</nlog>

3,Program.cs添加依赖注入

 

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: Setup NLog for Dependency injection
    builder.Logging.ClearProviders();
    builder.Host.UseNLog();

    var app = builder.Build();

    // Configure the HTTP request pipeline.
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthorization();

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

    app.Run();
}
catch (Exception exception)
{
    // NLog: catch setup errors
    logger.Error(exception, "Stopped program because of exception");
    throw;
}
finally
{
    // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
    NLog.LogManager.Shutdown();
}

  

4,注入到控制器

using Microsoft.Extensions.Logging;

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
        _logger.LogDebug(1, "NLog injected into HomeController");
    }

    public IActionResult Index()
    {
        _logger.LogInformation("Hello, this is the index!");
        return View();
    }
}

 

标签:Logging,app,dotnet6,写入,NLog,https,org,nlog,logger
From: https://www.cnblogs.com/imust2008/p/16868012.html

相关文章

  • java 字节流写入
    packagecom.tedu.day1201;importjava.io.File;importjava.io.FileOutputStream;publicclassStudy_Fos{publicstaticvoidmain(String[]args){......
  • 解决在idea中使用springMvc向mysql写入中文数据乱码
    相关设置:1、idea编码格式设置:   2、MySQL的相关编码格式设置:修改前编码:无用操作:之前通过命令行修改编码格式:setcharacter_set_client=utf8......
  • python 文件写入/创建
    写入已有的文件如果需要写入已有的文件夹,必须向open()函数加参数,这里介绍两种参数a--追加----会追加到文件的末尾w--写入----会覆盖任何已有的内容 打开文......
  • 盘点一个Pandas写入csv文件的小问题
    大家好,我是皮皮。一、前言前几天在Python铂金交流群【红色基因代代传】问了一个、Pandas处理的问题,提问截图如下:原始数据如下图所示:下面是他自己写的代码:withopen("r......
  • Python文件操作 - 读取写入
    文件操作文件读取关键字with:不再需要访问文件后将其关闭函数open():接受要打开的文件名称.参数若为文件名:Python在当前执行的文件所在的目录中查找指定的文件参数为相......
  • 通过binlog恢复数据
    1.通过binlog_rollback恢复数据安装binlog_rollback(反向解析出SQL语句)下载地址https://github.com/GoDannyLai/binlog_rollback/解压之后,chmod+xbinlog_rol......
  • TDengine:无模式写入行协议的四种方式
    小T导读:为了在数据采集项频繁变动的情况下保证用户仍然能够顺利地完成数据记录工作,TDengine 提供了三种无模式写入协议,分别是InfluxDBLine协议、OpenTSDB Telnet协......
  • mysql全量备份+binlog日志完整恢复数据
    首先,数据库在误操作之前必须已经开启了binlog日志功能,且binlog日志的保存周期必须大于全备份的时间周期!所谓恢复,就是让将全备份的数据全部恢复后,再使用mysqlbinlog命令把b......
  • SOLIDWORKS插件SolidKits高级BOM之批量写入模型属性
    一般情况下,我们在做设计时,可能都是在三维设计完成之后才去添加模型的属性信息,这部分工作就需要我们一个一个打开模型去做,也是很繁琐的一项工作。因此批量写属性的工具就变......
  • Python3爬虫豆瓣电影TOP250将电影名写入到EXCEL
    大家好,我是你们的老朋友泽哥,最近在学习Python3.6,于是兴起写了个小小的爬虫今天我们要爬取得页面是豆瓣电影TOP250,连接如下:​​http://movie.douban.com/top250?start=0&filt......