ASP .Net Core ILogger日志服务
🐳简介
ILogger日志服务是.NET平台中的一个内置服务,主要用于应用程序的日志记录。它提供了灵活的日志记录机制,允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件:
- ILogger接口:这是ILogger日志服务的核心接口,提供了实际执行日志记录操作的方法。通过这个接口,可以写入不同级别的日志项,如信息、警告、错误等。
- ILoggerProvider:负责创建ILogger对象的组件。它定义了如何获取或创建日志记录器实例的逻辑。
- ILoggerFactory:通过ILoggerProvider对象创建ILogger对象。它是ILoggerProvider实例的工厂,用于生成具体的ILogger实例。
- 依赖注入:在.NET应用程序中,ILogger可以通过依赖注入的方式注入到任何需要记录日志的类中。这通常是在类的构造函数中完成的,确保了日志服务的可用性和灵活性。
- 日志级别:ILogger允许开发者根据不同的日志级别进行记录,如Debug、Information、Warning、Error和Critical等,这有助于更细致地控制日志记录的内容和目的。
- 扩展性: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("致命日志");
以下是这些日志级别的简要介绍:
- LogTrace:
- 用途:用于跟踪应用程序中的最详细的信息。通常,这些日志记录的是对程序内部执行的详细跟踪,例如方法进入和退出、变量值的变化等。
- 使用场景:在开发和调试过程中非常有用,但通常在生产环境中关闭,因为会产生大量的日志输出。
- LogDebug:
- 用途:用于调试应用程序。这些日志通常包含有助于开发人员理解和解决问题的详细信息。
- 使用场景:在开发和测试阶段使用,但在生产环境中通常关闭,除非有特定的调试需求。
- LogInformation:
- 用途:记录应用程序的常规信息性消息。这些消息通常描述了应用程序的正常运行或一些重要的状态更改。
- 使用场景:在生产环境中常用,用于监控应用程序的常规运行状态。
- LogWarning:
- 用途:记录可能表明潜在问题的消息,但这些问题通常不会导致应用程序立即失败。
- 使用场景:在生产环境中使用,以提醒开发人员或管理员注意可能需要采取某些措施的情况。
- LogError:
- 用途:记录应用程序的错误情况,这些错误通常会导致应用程序的部分功能无法正常工作。
- 使用场景:在生产环境中使用,用于诊断和解决应用程序中的问题。
- 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 ,如下图

相关文章:
ASP .Net Core ILogger日志服务
🐳简介 ILogger日志服务是.NET平台中的一个内置服务,主要用于应用程序的日志记录。它提供了灵活的日志记录机制,允许开发者在应用程序中轻松地添加日志功能。以下是其主要特点和组件: ILogger接口:这是ILogger日志服…...
LeetCode 2657.找到两个数组的前缀公共数组
给你两个下标从 0 开始长度为 n 的整数排列 A 和 B 。 A 和 B 的 前缀公共数组 定义为数组 C ,其中 C[i] 是数组 A 和 B 到下标为 i 之前公共元素的数目。 请你返回 A 和 B 的 前缀公共数组 。 如果一个长度为 n 的数组包含 1 到 n 的元素恰好一次,我…...
【jvm】jinfo使用
jinfo介绍 jinfo 是一个命令行工具,用于查看和修改 Java 虚拟机(JVM)的配置参数。它通常用于调试和性能调优。 使用 jinfo 命令,你可以查看当前 JVM 的配置参数,包括堆大小、线程数、垃圾回收器类型等。此外…...
C++ Thread 源码 观后 自我感悟 整理
Thread的主要数据成员为_Thr 里面存储的是线程句柄和线程ID 先看看赋值运算符的移动构造 最开始判断线程的ID是否不为0 _STD就是使用std的域 如果线程ID不为0,那么就抛出异常 这里_New_val使用了完美转发,交换_Val和_New_val的值 _Thr _STD exchange(_…...
2024阿里云2核2G服务器租用价格99元和61元一年
阿里云2核2G服务器配置优惠价格61元一年和99元一年,61元是轻量应用服务器2核2G3M带宽、50G高效云盘;99元服务器是ECS云服务器经济型e实例ecs.e-c1m1.large,2核2G、3M固定带宽、40G ESSD entry系统盘,阿里云活动链接 aliyunfuwuqi.…...
刚刚!奥特曼剧透GPT-5,将在高级推理功能上实现重大进步
奥特曼:“GPT-5的能力提升幅度将超乎人们的想象…” 自 Claude 3 发布以来,外界对 GPT-5 的期待越来越强。毕竟Claude 3已经全面超越了 GPT-4,成为迄今为止最强大模型。 而且距离 GPT-4 发布已经过去了整整一年时间,2023年3月14…...
uniapp使用Canvas给图片加水印把临时文件上传到服务器
生成的临时路径是没有完整的路径没办法上传到服务器 16:37:40.993 添加水印后的路径, _doc/uniapp_temp_1710923708347/canvas/17109238597881.png 16:37:41.041 添加水印后的完整路径, file://storage/emulated/0/Android/data/com.jingruan.zjd/apps/__UNI__BE4B000/doc/…...
小希的迷宫
目录 描述 输入 输出 样例输入 样例~~输出~~ 思路 code 描述 Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的&…...
MySQL索引剖析【了解背后的数据结构】
文章目录 常用索引概念聚簇索引 🎉非聚簇索引(二级索引) 数据结构选择Hash结构 ⭐️有序数组二叉搜索树AVL树(平衡二叉搜索树)B-Tree(多路平衡查找树)BTree ⭐️ MySQL中索引的实现InnoDB 索引实…...
004——内存映射(基于鸿蒙和I.MAX6ULL)
目录 一、 ARM架构内存映射模型 1.1 页表项 1.2 一级页表映射过程 1.3 二级页表映射过程 1.4 cache 和 buffer 二、 鸿蒙内存映射代码学习 三、 为板子编写内存映射代码 3.1 内存地址范围 3.2 设备地址范围 一、 ARM架构内存映射模型 (以前我以为页表机制…...
150 Linux C++ 通讯架构实战6 服务器程序目录规划,makefile编写
从无到有产生这套 通讯架构源代码【项目/工程】 一,服务器程序目录规划 一个完整的项目 肯定会有多个源文件,头文件,会分别存放到多个目录; 我们这里要规划项目的目录结构; 注意:不固安是目录还是文件&am…...
OpenCV支持哪些类型的文件格式读写?
OpenCV支持多种类型的文件格式读写,包括但不限于以下格式: Windows位图文件:包括BMP和DIB格式。JPEG文件:支持JPEG、JPG和JPE三种扩展名。便携式网络图片:即PNG格式。便携式图像格式:包括PBM、PGM和PPM三种…...
数据库中使用IN操作效率问题
1. IN操作的基本概念 IN操作符在SQL中用于指定某个字段的值是否匹配列表中的任何值。这是一个条件操作符,用于在WHERE子句中过滤记录。 SQL语法示例: SELECT * FROM table_name WHERE column_name IN (value1, value2, ...); 2. IN操作的效率问题 当…...
unity学习(67)——控制器Joystick Pack方向
1.轮盘直接复制一个拖到右边就ok了,轮盘上是有脚本的。(只复制) 2.上面的显示窗也可以复制,但是要绑定对应的轮盘(unity中修改变量),显示窗上是有脚本的。(复制改变量) 3…...
MATLAB的使用(一)
一,MATLAB的编程特点 a,语法高度简化; b,脚本式解释型语言; c,针对矩阵的高性能运算; d,丰富的函数工具箱支持; e,通过matlab本体构建跨平台; 二,MATLAB的界面 工具栏:提供快捷操作编辑器…...
JMeter并发工具的使用
视频地址:Jmeter安装教程01_Jmeter之安装以及环境变量配置_哔哩哔哩_bilibili 一、JMeter是什么 JMeter是一款免安装包,官网下载好后直接解压缩并配置好环境变量就可以使用。 环境变量配置可参考:https://www.cnblogs.com/liulinghua90/p/…...
基于springboot+vue的毕业就业信息管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
有什么小程序适合个人开发?
在这个信息爆炸的时代,小程序已经成为了我们生活中的一部分。无论是出行、购物还是娱乐,小程序都能为我们提供便捷的服务。对于个人开发者来说,开发一个小程序不仅可以锻炼自己的技术能力,还可以为他人提供便利,甚至有…...
【ARXIV2402】MambaIR
这个工作首次将 Mamba 引入到图像修复任务,关于为什么 Mamba 可以用于图像修复,作者有非常详细的解释:一路向北:性能超越SwinIR!MambaIR: 基于Mamba的图像复原基准模型 作者认为Mamba可以理解为RNN和CNN的结合…...
【计算机网络篇】数据链路层(3)差错检测
文章目录 🥚误码🍔两种常见的检错技术⭐奇偶校验⭐循环冗余校验🎈例子 🥚误码 误码首先介绍误码的相关概念 🍔两种常见的检错技术 ⭐奇偶校验 奇校验是在待发送的数据后面添加1个校验位,使得添加该校验…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
