ASP .Net Core ILogger日志服务

🐳简介

ILogger日志服务是.NET平台中的一个内置服务,主要用于应用程序的日志记录。它提供了灵活的日志记录机制,允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件:

  1. ILogger接口:这是ILogger日志服务的核心接口,提供了实际执行日志记录操作的方法。通过这个接口,可以写入不同级别的日志项,如信息、警告、错误等。
  2. ILoggerProvider:负责创建ILogger对象的组件。它定义了如何获取或创建日志记录器实例的逻辑。
  3. ILoggerFactory:通过ILoggerProvider对象创建ILogger对象。它是ILoggerProvider实例的工厂,用于生成具体的ILogger实例。
  4. 依赖注入:在.NET应用程序中,ILogger可以通过依赖注入的方式注入到任何需要记录日志的类中。这通常是在类的构造函数中完成的,确保了日志服务的可用性和灵活性。
  5. 日志级别:ILogger允许开发者根据不同的日志级别进行记录,如Debug、Information、Warning、Error和Critical等,这有助于更细致地控制日志记录的内容和目的。
  6. 扩展性:ILogger日志服务支持扩展,开发者可以根据需要自定义日志提供程序,或者使用第三方库来增强日志功能。

🐳ASP .Net Core 中使用日志服务

在ASP.NET项目中,并不需要我们自己手动注册日志服务。

框架基于Microsoft.Extensions.Logging命名空间下的ILogger接口和相关的服务类库已经帮你做好了这些工作,

 因此我们可以直接在项目中通过构造函数的方式注入我们的日志服务

public class HelloService : IHelloService
{

    private readonly ILogger<IHelloService> _logger;
    
    public HelloService(ILogger<IHelloService> logger)
    {
        _logger = logger;
    }

}

注入完成后就可以在方法中使用_logger来打印日志了

 _logger.LogTrace("跟踪日志");
 _logger.LogDebug("调试日志");
 _logger.LogInformation("信息");
 _logger.LogWarning("警告日志");
 _logger.LogError("错误日志");
 _logger.LogCritical("致命日志");

以下是这些日志级别的简要介绍:

  1. LogTrace:
    • 用途:用于跟踪应用程序中的最详细的信息。通常,这些日志记录的是对程序内部执行的详细跟踪,例如方法进入和退出、变量值的变化等。
    • 使用场景:在开发和调试过程中非常有用,但通常在生产环境中关闭,因为会产生大量的日志输出。
  2. LogDebug:
    • 用途:用于调试应用程序。这些日志通常包含有助于开发人员理解和解决问题的详细信息。
    • 使用场景:在开发和测试阶段使用,但在生产环境中通常关闭,除非有特定的调试需求。
  3. LogInformation:
    • 用途:记录应用程序的常规信息性消息。这些消息通常描述了应用程序的正常运行或一些重要的状态更改。
    • 使用场景:在生产环境中常用,用于监控应用程序的常规运行状态。
  4. LogWarning:
    • 用途:记录可能表明潜在问题的消息,但这些问题通常不会导致应用程序立即失败。
    • 使用场景:在生产环境中使用,以提醒开发人员或管理员注意可能需要采取某些措施的情况。
  5. LogError:
    • 用途:记录应用程序的错误情况,这些错误通常会导致应用程序的部分功能无法正常工作。
    • 使用场景:在生产环境中使用,用于诊断和解决应用程序中的问题。
  6. LogCritical:
    • 用途:记录严重的错误,这些错误可能导致应用程序完全失败或不稳定。
    • 使用场景:在生产环境中使用,通常需要立即采取行动以恢复应用程序的稳定性和可用性。

 运行项目,在控制台中看到,我们只打印了等级大于Information的日志

 并且我们还发现,日志中夹着一些系统产生的Microsoft.AspNetCore开头的日志,这是因为我们在配置文件中,将Default的日子级别范围设置为Ingormation了,而 Microsoft.AspNetCore:这是针对以Microsoft.AspNetCore开头的所有特定分类的日志记录设置。这样的分类通常与ASP.NET Core框架组件相关,比如路由、身份验证等

 🍀我们可以通过另一种注入方式来设置日志的分类

public class HelloService : IHelloService
{
    private readonly ILogger _logger;

    public HelloService(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger("Microsoft.AspNetCore");
    }
}

如我们将分类设置为配置文件中设置为Trace的 Microsoft.AspNetCore 分类,届时运行项目将会打印所有的日志

同时我们还可以通过

_logger.LogTrace(new EventId(1001,"Action"),"跟踪日志");

这种打印日志方式来设置我们日志的ID ,如下图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/469990.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nacos下载和安装

&#xff08;1&#xff09;下载地址和版本 下载地址&#xff1a;Releases alibaba/nacos GitHub 解压在没有中文及空格的文件夹 &#xff08;2&#xff09;启动nacos服务 在bin目录下,打开命令行,输入 启动命令&#xff1a;sh startup.sh -m standalone - Linux/Unix/Mac …

(总结)OpenOFDM接收端信号处理流程

Overview — OpenOFDM 1.0 documentation 本篇文章为学习OpenOFDM之后的产出PPT&#xff0c;仅供学习参考。

3.19总结

A计划 题解&#xff1a;这题其实就是一个很简单的三维搜索&#xff0c;有了一个传送门&#xff0c;并且要确定是否传过去的对应位置是墙&#xff0c;防止被装死&#xff0c;同事呢又要在对应的t时间内完成&#xff08;不一定要卡着t时间恰好完成&#xff09; #include<ios…

鸿蒙实战开发:【FaultLoggerd组件】讲解

简介 Faultloggerd部件是OpenHarmony中C/C运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件&#xff0c;Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志&#xff0c;定位相关问题。 架构 Native InnerKits 接口 Si…

内存泄漏检测、单向链表的操作

我要成为嵌入式高手之3月19日数据结构第二天&#xff01;&#xff01; ———————————————————————————— valgrind内存测试工具 让虚拟机上网、在虚拟机上下载软件&#xff0c;参考笔记&#xff1a; 我要成为嵌入式高手之2月3日Linux高编第一天&am…

IPD集成产品开发:塑造企业未来竞争力的关键

随着市场竞争的日益激烈&#xff0c;企业对产品开发的要求也越来越高。如何在快速变化的市场环境中&#xff0c;既保证产品的批量生产效率&#xff0c;又满足客户的个性化需求&#xff0c;成为了企业面临的重要挑战。IPD&#xff08;集成产品开发&#xff09;模式&#xff0c;作…

【单点知识】基于实例讲解PyTorch中的Transforms类

文章目录 0. 前言1. 基本用法1.1 转换为Tensor1.2 图像大小调整1.3 随机裁剪1.4 中心裁剪1.5 随机翻转1.6 随机旋转1.7 填充1.8 组合变换 2. 进阶用法2.1 归一化2.2 色彩空间转换2.3 颜色抖动2.4 随机仿射2.5 透视变换2.6 自定义变换 0. 前言 按照国际惯例&#xff0c;首先声明…

Linux 常用操作命令大全

目录 一、命令大集合 1.1 whereis 1.2 which 1.3 sudo 1.4 grep 1.5 free 1.6 top 动态显示进程的状态 1.7 ps 静态显示进程信息 1.8 df 1.9 iostat 看IO性能状态 1.10 yum安装插件命令 1.11 rpm 1.12 scp远程拷贝 1.13 uname 二、linux网络命令 2.1 centos7 防火…

数据库只追求性能是不够的!

那些成功的数据库公司没有一家是通过性能比竞争对手更快而成功的。 作者&#xff1a;JORDAN TIGANI&#xff0c;DuckDB 公司 MotherDuck 联合创始人&CEO 本文和封面来源&#xff1a;https://motherduck.com/&#xff0c;爱可生开源社区翻译。 本文约 4500 字&#xff0c;预…

autojsx使用

工具&#xff1a; 投屏软件&#xff1a;https://www.sigma-rt.com/tc/download/ autojsx&#xff1a;https://github.com/kkevsekk1/AutoX/releases 开发文档&#xff1a;http://doc.autoxjs.com/#/ 开发工具&#xff1a;https://code.visualstudio.com/ vscode插件&#xff1a…

《世界之外》玩家闹上315,乙游打响维权大战

315维权微博的评论区&#xff0c;竟然被举报网易的玩家占领了。 玩家举报网易乙游《世界之外》虚假宣传侵害消费者权益&#xff0c;在游戏中设置排行榜和专属商店将玩家分为三六九等&#xff0c;诱导玩家消费氪金&#xff0c;强烈要求网易打开退款通道。 目前大批玩家举报的举…

【Leetcode】1793. 好子数组的最大分数

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 给你一个整数数组 n u m s nums nums &#xff08;下标从 0 0 0 开始&#xff09;和一个整数 k k k 。 一个子数组 ( i , j ) (i, j) (i,j) 的 分数 定义为 m i n ( n u m s …

YOLOv5目标检测学习(6):源码解析之:训练部分train.py

文章目录 前言一、导入相关包与配置二、主函数main2.1 checks&#xff1a;检查rank值来判断是否打印参数、检查git仓库、检查包的安装2.2 判断是否恢复上一次模型训练提问&#xff1a;opt.data, opt.cfg, opt.hyp, opt.weights, opt.project各是什么&#xff1f; 2.3 DDP mode&…

HarmonyOS NEXT应用开发之swiper指示器导航点位于swiper下方

介绍 本示例介绍通过分割swiper区域&#xff0c;实现指示器导航点位于swiper下方的效果。 效果预览图 使用说明 加载完成后swiper指示器导航点&#xff0c;位于显示内容下方。 实现思路 将swiper区域分割为两块区域&#xff0c;上方为内容区域&#xff0c;下方为空白区域。…

Linux权限维持后门及应急响应

本次应急响应实验用kali和centos7来充当攻击机和靶机 kali&#xff1a;192.168.10.130 centos7&#xff1a;192.168.10.155 前提&#xff1a; 用kali连接到centos7上面ssh root192.168.10.155 一、SSH软链接 任意密码登录即可发现程度&#xff1a;|||||| ln -sf /usr/sbi…

Learn OpenGL 17 立方体贴图

立方体贴图 我们已经使用2D纹理很长时间了&#xff0c;但除此之外仍有更多的纹理类型等着我们探索。在本节中&#xff0c;我们将讨论的是将多个纹理组合起来映射到一张纹理上的一种纹理类型&#xff1a;立方体贴图(Cube Map)。 简单来说&#xff0c;立方体贴图就是一个包含了…

【论文阅读】Improved Denoising Diffusion Probabilistic Models

Improved Denoising Diffusion Probabilistic Models 文章目录 Improved Denoising Diffusion Probabilistic Models概述Improving the Log-likelihoodLearning ∑ θ ( x t , t ) \sum_{\theta}(x_{t}, t) ∑θ​(xt​,t)Improving the Noise ScheduleReducing Gradient Nois…

AV1:帧内预测(一)

​VP9支持10种帧内预测模式&#xff0c;包括8种角度模式和非角度模式DC、TM(True Motion)模式&#xff0c;AV1在其基础上进一步扩展&#xff0c;AV1帧内预测角度模式更细化&#xff0c;同时新增了部分非角度模式。 扩展的角度模式 AV1在VP9角度模式的基础上进一步扩展&#xf…

Linux系统学习总结(上)

B站大学地址&#xff1a;第二章-04-ls命令的参数和选项_哔哩哔哩_bilibili 操作系统概述 1、计算机是由硬件和软件两部分组成的 2、操作系统是软件的一类&#xff0c;主要作用是协助用户调度硬件工作&#xff0c;充当用户和计算机硬件之间的桥梁 3、常见的操作系统分为两类…

C++ Primer Plus第十七章笔记

目录 1. C输入和输出概述 1.1 流、缓冲区和iostream 1.2 重定向 2. 使用cout进行输出 2.1 修改显示时使用的计数系统 2.2 调整字段宽度 2.3 填充字符 2.4 设置浮点数的显示精度 2.5 打印末尾的0或小数点 2.6 setf() 2.7 头文件iomanip 3. 使用cin进行输入 3.1 cin…