1. 介绍

NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台,支持数据库、文件、控制台。

2. 输入到文件

2.1 引用nuget包

    <PackageReference Include="NLog" Version="4.7.6" /><PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />

2.2 创建NLog配置文件

在项目目录中新建一个xml文件的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"><targets async="true"><target name="file" xsi:type="File"layout="${longdate} ${logger} ${message}${exception:format=ToString}"fileName="${basedir}/logs/${date:format=yyyy-MM-dd}.txt"keepFileOpen="true"encoding="utf-8" /><target name="console" xsi:type="Console"><attribute name="time" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff zzz}" /><attribute name="category" layout="${logger}" /><attribute name="log_level" layout="${level:lowerCase=true}" /><attribute name="message" layout="${message}" /><attribute name="trace_id" layout="${aspnet-TraceIdentifier:ignoreActivityId=true}" /><attribute name="user_id" layout="${aspnet-user-identity}" /><!--取得该条日志生产者名字--><attribute name="exception" layout="${exception:format=tostring}" /></target></targets><rules><logger name="*" minlevel="Info" writeTo="console"   ruleName="console" /><logger name="*" minlevel="Debug" writeTo="file" /></rules>
</nlog>

2.3 Program中修改

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;namespace NlogDemo
{public static class Program{public static void Main(string[] args){var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();try{logger.Debug("init main");CreateHostBuilder(args).Build().Run();}catch (Exception ex){//NLog: catch setup errorslogger.Error(ex, "Stopped program because of exception");throw;}finally{NLog.LogManager.Shutdown();}}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).ConfigureLogging((_, loggerBuilder) =>{loggerBuilder.ClearProviders();loggerBuilder.SetMinimumLevel(LogLevel.Information);}).UseNLog();}
}

2.4 配置日志级别

{"Logging": {"LogLevel": {"Default": "Information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "Information"}}
}

2.5 控制器使用

        private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;_logger.LogDebug(1, "NLog injected into HomeController");}[HttpGet]public string Get(){_logger.LogTrace("Trace");_logger.LogDebug("debug");_logger.LogInformation("info");_logger.LogWarning("warn");_logger.LogError("error");_logger.LogCritical("Critical");return default;}

查看输出的日志文件

image.png

3. 参考文档

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-5

.Net日志之nlog相关推荐

  1. 日志管理-NLog日志框架简写用法

    日志管理-NLog日志框架简写用法 本文转载:http://www.blogjava.net/qiyadeng/archive/2013/02/27/395799.html 在.net中也有非常多的日 ...

  2. 一个简单好用的日志框架NLog

    之前我介绍过如何使用log4net来记录日志,但最近喜欢上了另一个简单好用的日志框架NLog. 关于NLog和log4net的比较这里就不多讨论了,感兴趣的朋友可以参看.NET日志工具介绍和log4n ...

  3. 日志框架NLog之将日志发送到邮件

    背景 NLog可以将日志输出到不同的媒介上,邮件是其中一个,通过邮件可以让我们第一时间收到信息.使用SMTP协议通过电子邮件发送日志消息.与FallbackGroup Target很好地结合在一起,以 ...

  4. KSO-netcore 中使用日志组件Nlog

    简介 在所有的应用程序中,日志功能是不可或缺的模块,我们可以根据日志信息进行调试.查看产生的错误信息,在ASP.NET Core中我们可以使用log4net或者NLog日志组件来实现记录日志的功能,这 ...

  5. .net中,日志组件 Nlog,SerialLog, Log4Net的用法

    源码:https://download.csdn.net/download/helldoger/85778816 以.NET6 Winform为例 <Project Sdk="Micr ...

  6. .Net 日志系统-NLog

    NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码. NLog虽然没有log4net框架的流行程度高,但是它的跨平台性.开源持续维护性.性能等方面优于 ...

  7. ASP.NET Core 2.0 配置NLog日志组件

    2019独角兽企业重金招聘Python工程师标准>>> 1).添加nlog.config配置文件 <?xml version="1.0" encoding= ...

  8. NLog日志框架使用探究

    前言 日志是每个程序的基本模块.本文是为了探究如何通过NLog方便及记录日志并通过Log4View工具收集日志统一查看. 为什么是NLog? 下载量NLog和Log4Net差不多,这两个日志模块是.N ...

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

    C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows.Liux环境下程序发布 一. MVC含义 二.数据传输 1.控制器向视图传输数据 三.日志组件Log4net ...

最新文章

  1. 程序员如何用“撞针“拯救35亿地球人?
  2. android 加载器loader详解
  3. python3 字符串前字母(无前缀,前缀u,前缀b,前缀r)含义
  4. 4 命令_主梁建成、拾掇命令流(2019/4/10)
  5. 计算机应用基础测试成绩截图,计算机应用基础测试题图文稿.docx
  6. 2020蓝桥杯省赛---java---B---8(走方格)
  7. C++ 文件头 static char THIS_FILE[] = __FILE__
  8. H2O Wave教程---基于浏览器的实时显示工具---教程01
  9. 从内部重启python脚本
  10. 实验用matlab函数卷积定理,用matlab验证卷积定理
  11. mariadb不支持load data_不修改代码打包python机器学习工程
  12. Summarize 2014 Look Ahead 2015
  13. 我国第一个“法律语言语料库”
  14. xy坐标转换度分秒_经纬度转换XY坐标软件
  15. 公路自行车入门级推荐java_想玩公路自行车,有没有入门推荐?
  16. 数字图像处理艺术化效果——彩色图像转化为灰度图像(黑白照片)
  17. java预研项目_YAML预研文档
  18. 单片机控制电路的多图纸原理图和层次式设计
  19. 无法启动此程序,因为计算机中丢失D3DCOMPILER _47.dIl. 尝试重
  20. macos上的ios虚拟机_如何将中级帖子转换为可在iOS和macOS上运行的SwiftUI应用

热门文章

  1. 将权限授予文件夹和程序集
  2. 【转】2007高校BBS上20个睿智的冷笑话
  3. TAR命令参数详解[转]
  4. 蓝桥杯——快速排序(2018JavaB组第5题9分)
  5. idea中开启Run Dashboard
  6. 关于互斥锁,条件变量的内核源码解析
  7. cannot fetch plan for SQL_ID: 5qgz1p0cut7mx, CHILD_NUMBER: 0
  8. [导入]心平气和,千佳骈集;意粗性躁,一事无成
  9. 快来加入阿里云大学【云学院】班级助理招募—机会稍纵即逝,错过遥遥无期!...
  10. SQL Server 2008 R2 安装时提示“Reporting Services目录数据库文件存在”