ASP.NET COR3.1 集成日志插件NLog

简介: ASP.NET COR3.1 集成日志插件NLog

一、引言

好的框架肯定要有好的日志记录。另外鄙人发现个问题:服务器带域名的项目会报错,而不带域名的和源码执行不报错,因此也要用日志记录下。据说NLog比Log4net效率高。

二、引入NLog插件

三、配置NLog

3.1 新建一个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"
      autoReload="true"
      throwConfigExceptions="true"
      internalLogLevel="Off"
      internalLogFile="C:\temp\internal-nlog.txt">
  <targets>
    <!-- Trace级别日志,输出到html文件 -->
    <target xsi:type="File"
                name="TraceFile"
                fileName="${basedir}/logs/${shortdate}_Trace.html"
                layout="【记录时间】:${longdate} &lt;br&gt;
                【文名名称】:${logger} &lt;br&gt;
            【日志级别】:${uppercase:${level}} &lt;br&gt;
            【日志内容】:${message} ${exception} &lt;hr size=2 color=red&gt;" />
  </targets>
  <rules>
    <!-- Microsoft.*表示通配符,所有微软日志将被过滤 -->
    <logger name="Microsoft.*" minlevel="Trace"  final="true" />
    <logger name="*" minlevel="Trace" writeTo="TraceFile" />
  </rules>
</nlog>

3.2 引入NLog的相关组件后,我们需要将NLog设置为系统的日志管理器,修改Program.cs文件,代码如下:

添加这2句:

NLogBuilder.ConfigureNLog("nlog.config");
.ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                })
                .UseNLog();

总体代码如下:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Yadinghao.Web
{
    public class Program
    {
        public static void Main(string[] args)
        {
            NLogBuilder.ConfigureNLog("nlog.config");
            CreateHostBuilder(args).Build().Run();
        }
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                }).ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                })
                .UseNLog();
    }
}

四、写日志

在Controller里面在其构造函数中注入ILogger接口代码:

private IWebHostEnvironment _Environment;
        private readonly ILogger<SystemController> _Logger;
        #region 构造函数
        /// <summary>
        /// SystemController的构造函数
        /// </summary>
        /// <param name="_environment"></param>
        /// <param name="_logger"></param>
        public SystemController(IWebHostEnvironment _environment, ILogger<SystemController> _logger)
        {
            _Environment = _environment;
            _Logger = _logger;
        }
        #endregion

配置完成就开始写

_Logger.LogDebug(currentXmlFileName);

 

五、成果展示

很奇怪没写的指定路径

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
前端开发 关系型数据库 MySQL
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
|
3月前
|
存储 Go
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
本文将探讨几个热门的 go 日志库如 logrus、zap 和官网的 slog,我将分析这些库的的关键设计元素,探讨它们是如何支持日志轮转与切割功能的配置。
99 0
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
|
4月前
|
XML SQL 开发框架
|
4月前
|
Kubernetes 容器
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
在Kubernetes(k8s)中部署Higress时,查看Wasm插件日志的方法如下
73 1
|
11天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
21 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
26天前
|
存储 监控 数据可视化
如何统计员工每日工作量:使用Groovy编写一个JIRA插件来与项目管理集成,实时追踪员工的工作量
本文介绍了如何使用Groovy编写JIRA插件以实时追踪员工工作量。通过示例代码展示了如何捕获和打印任务工作日志,以及如何集成到项目管理中,确保数据在员工花费时间时自动记录。此外,还说明了如何设置定时任务将工作量数据提交到公司网站,从而优化团队管理和决策。
94 2
|
3月前
|
IDE 前端开发 JavaScript
【C#】C# 开发环境配置(Rider 一个.NET 跨平台集成开发环境)
【1月更文挑战第26天】【C#】C# 开发环境配置(Rider 一个.NET 跨平台集成开发环境)
|
3月前
|
JSON NoSQL 网络安全
业务服务器免装插件,使用rsync+nxlog同步+采集应用日志并接入到GrayLog5.1
业务服务器免装插件,使用rsync+nxlog同步+采集应用日志并接入到GrayLog5.1
41 0
|
4月前
|
Java
SpringBoot:第二篇 集成日志lombok
SpringBoot:第二篇 集成日志lombok
40 0
|
4月前
|
Java 开发者 Docker
IDEA 集成 Docker 插件一键部署 Spring Boot 应用
IDEA 集成 Docker 插件一键部署 Spring Boot 应用