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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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月前
|
SQL 程序员
分享一个 .NET 通过监听器拦截 EF 消息写日志的详细例子
分享一个 .NET 通过监听器拦截 EF 消息写日志的详细例子
|
17天前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
28 2
zabbix agent集成percona监控MySQL的插件实战案例
|
23天前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
34 8
|
27天前
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
|
1月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之数据集成任务日志中显示wait,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
11天前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
29 0
|
1月前
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
|
19天前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
34 0
|
1月前
|
IDE API 开发工具
通过IDE插件体验阿里云OpenAPI的高效集成, 精品礼品等你来拿!
轻量级的开放API工具——Alibaba Cloud Developer Toolkit及Alibaba Cloud API Toolkit。这些插件支持快速查阅阿里云产品的开放API,提供API调试与SDK示例生成等功能,帮助开发者轻松集成阿里云服务。您可通过JetBrains Marketplace或VS Code Marketplace搜索安装,完成身份验证后即刻体验。欢迎分享您的使用反馈,有机会获得精美礼品!
|
1月前
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了