.NET Microsoft.Extensions.Logging + NLog 记录日志到文件

这篇具有很好参考价值的文章主要介绍了.NET Microsoft.Extensions.Logging + NLog 记录日志到文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近想了解下面向对象开发,选择C# 语言 以及NET6.0
日志是开发中最常用的功能,本文记录下其中日志使用方法,理解不全的地方后续再学习补充

环境

  • Ubuntu 22.04.2 LTS
  • dotnet 6.0.411

准备工作

# https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-new-sdk-templates#web-others
# 使用worker模板创建一个项目,
# 项目能快速生成一个后台服务模板
dotnet new worker --use-program-main
# 安装NLog针对MicrosoftExtensions扩展
dotnet add package NLog.Extensions.Logging

.NET Microsoft.Extensions.Logging + NLog 记录日志到文件## 添加日志功能

1. 根目录添加一个nlog.conf

<?xml version="1.0" encoding="utf-8" ?>
<!-- XSD manual extracted from package NLog.Schema: https://www.nuget.org/packages/NLog.Schema-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogFile="example.log"
      internalLogLevel="Info" >
   <!-- example.log文件名可以修改 -->
  <!-- the targets to write to -->
  <targets>
    <!-- 同时写入文件和控制台 -->
    <target xsi:type="File" name="logfile" fileName="example.log"
            layout="${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" />
    <target xsi:type="Console" name="logconsole"
            layout="${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" />
  </targets>

  <!-- rules to map from logger name to target -->
  <rules>
    <!--  可修改最低日志等级 -->
    <logger name="*" minlevel="Trace" writeTo="logfile,logconsole" />
  </rules>
</nlog>

2. 注册服务

        IHost host = Host.CreateDefaultBuilder(args)
            .ConfigureServices(services =>
            {
                services.AddHostedService<Worker>();
                # 只用加以下一段
                services.AddLogging((builder) =>
                {
                    builder.ClearProviders(); 
                    builder.AddNLog();
                });
                # 只用加以下一段结束
            })
            .Build();

3. 使用

模板中的wroker已自动注入进去,不需要修改

public class Worker : BackgroundService
{
    private readonly ILogger<Worker> _logger;

    public Worker(ILogger<Worker> logger)
    {
        _logger = logger;
        # 直接使用logger
        # _logger.LogInformation()
        # _logger.........
    }
}

完整修改如下

Program.cs

namespace dotnet_demo;
using NLog.Extensions.Logging;

public class Program
{
    public static void Main(string[] args)
    {
        IHost host = Host.CreateDefaultBuilder(args)
            .ConfigureServices(services =>
            {
                services.AddHostedService<Worker>();
                services.AddLogging((builder) =>
                {
                    builder.ClearProviders(); 
                    builder.AddNLog();
                });
            })
            .Build();

        host.Run();
    }
}

Worker.cs

namespace dotnet_demo;

public class Worker : BackgroundService
{
    private readonly ILogger<Worker> _logger;

    public Worker(ILogger<Worker> logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("正在执行任务,时间是: {time}", DateTimeOffset.Now);
            await Task.Delay(1000, stoppingToken);
        }
    }
}

效果

.NET Microsoft.Extensions.Logging + NLog 记录日志到文件

TODO

.NET Framework ASP.NET Core .NET Core Console中使用方法参考文档
https://github.com/NLog/NLog文章来源地址https://www.toymoban.com/news/detail-507262.html

  • 修改配置日志文件自动归档

到了这里,关于.NET Microsoft.Extensions.Logging + NLog 记录日志到文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

    connected Services 服务依赖(第三方) Properties 文件下 launchSettings.json 项目启动配置文件 wwwroad 存放静态文件 依赖项 管理Nuget程序包 appsettings.json 配置文件 C 业务逻辑运算–调用其他的服务做业务逻辑 M 实体对象,保存数据,数据传输 V 视图,表现层 第一步:寻找log4net 程序包

    2024年02月14日
    浏览(52)
  • 深入理解Python中的日志记录(Logging)

    🚀  个人主页 :xmp65535 🚀  专栏 :python技术专栏 目录 一、Python Logging 模块概述 二、相关组件 Logger Handler Formatter Filter LogRecord Level 三、基本配置 Formatters格式: 四、记录日志 五、日志记录者(Loggers) logging.getLogger(name=None) 六、处理器(Handlers) logging.Handler() RotatingFileHand

    2024年04月23日
    浏览(35)
  • python | Logging日志标准库的常见使用方法(手搓日志记录装饰器)

    日志级别从低到高分为: DEBUG INFO WARNING ERROR CRITICAL 使用前需要设置记录的日志级别,只有大等于该日志级别的日志才会被记录。 例如,设置日志级别为 WARNING ,则 WARNING 、 ERROR 、 CRITICAL 三种级别的日志才会被记录。 运行这段代码,可以在控制台看到以下输出: 可以自定义

    2024年02月11日
    浏览(41)
  • python创建多个logging日志文件

    为每一个计算过程创建一个单独的日志文件,并写入对应的结果,同时保留控制台输出的功能,控制台输出与日志文件记录可以分开单独控制。 控制台输出结果  日志文件输出

    2024年02月13日
    浏览(41)
  • 实时监控.NET Core请求次数:创建记录最近5分钟的请求,轻松可靠

      概述: 在.NET Core中,通过创建RequestCountMiddleware中间件,结合MemoryCache,实现了记录最近5分钟请求次数的功能。该中间件在每个请求中更新计数,并使用缓存存储,为简单而实用的请求监控提供了一个示例。 要实现一个在.NET Core中记录最近5分钟请求次数的 RequestCountMiddlew

    2024年03月09日
    浏览(50)
  • .net 6 集成NLog

    step 1 添加nuget 添加nuget 包 Roc step 2 添加支持 修改program.cs step 3 添加配置文件 添加配置文件 位置 看图, (注意位置和大小写)

    2024年04月16日
    浏览(32)
  • .net Core API 添加 NLog

    nlog.config program.cs  NuGet packages:NLog、NLog.Web.AspNetCore 

    2024年02月12日
    浏览(37)
  • ASP.NET Core - 日志记录系统(一)

    日志记录是什么?简单而言,就是通过一些方式记录应用程序运行中的某一时刻的状态,保留应用程序当时的信息。这对于我们进行应用程序的分析、审计以及维护有很大的作用。 作为程序员,我们恐怕谁也不敢保证我们开发的软件应用一定不存在BUG,一定不会出现故障,而

    2024年02月17日
    浏览(35)
  • .Net Core中使用DiagnosticSource进行日志记录

    System.Diagnostics.DiagnosticSource 可以丰富地记录程序中地日志,包括不可序列化的类型(例如 HttpResponseMessage 或 HttpContext)。 System.Diagnostics.DiagnosticSource 通过订阅发布模式运行,我们可以根据自己地需要发现数据源并订阅感兴趣的数据源。   DiagnosticSource 与 ILogger 区别 一般来说

    2024年03月12日
    浏览(67)
  • .NET 最便捷的Log4Net日志记录器

    Apache log4net 库是一个帮助程序员将日志语句输出到各种的工具 的输出目标。log4net是优秀的Apachelog4j™框架的移植 ® Microsoft.NET 运行时。我们保持了与原始log4j相似的框架 同时利用 .NET 运行时中的新功能。 log4net是Apache软件基金会Apache日志记录服务项目的一部分。日志记录服务

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包