分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了

article/2024/7/17 22:32:20

image

前言

实际上,.NET Core 内部也内置了一套日志系统,它是一个轻量级的日志框架,用于记录应用程序的日志信息。

它提供了 ILogger 接口和 ILoggerProvider 接口,以及一组内置的日志提供程序(如 Console、Debug、EventSource 等),可以方便地进行日志记录和输出。

平时做一些测试或个人的研究,建议直接使用 .NET Core 自带的日志系统就可以了,方便快捷。

Step By Step 步骤

  1. 创建一个 .NET Core Console 项目

  2. 从 Nuget 安装以下包

    Microsoft.Extensions.Logging.Console

  3. 打开 Program.cs,编写日志记录代码,注意注释

    // 1. 引用日志命名空间
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Logging;// 2. 创建依赖注入容器
    ServiceCollection services =new ServiceCollection();// 3. 注入输出到控制台的日志服务
    services.AddLogging(log => log.AddConsole());// 4. 使用
    using (var sp = services.BuildServiceProvider())
    {// 使用 GetRequiredService 获取日志服务// 输出日志的时候会把泛型类型 Program 输出,便于定位日志来自哪个类// 注意,在注入ILogger服务的时候,不能使用非泛型的ILogger接口,否则是获取不到服务的。var logger = sp.GetRequiredService<ILogger<Program>>();logger.LogWarning("这是一条警告消息");logger.LogError("这是一条错误消息");string age = "abc";logger.LogInformation("用户输入的年龄:{0}", age);//模拟操作失败,输出错误日志try{int i = int.Parse(age);}catch (Exception ex){logger.LogError(ex, "解析字符串为int失败");}
    }
    
  4. 运行后就可以看到效果了

总结

  1. .NET Core 中自带的日志系统可以把日志记录到控制台、事件日志、调试窗口等地方,非常适合平时个人做测试或者代码研究
  2. .NET Core 中的日志提供了标准接口,允许开发人员编写第三方实现,使用第三方日志提供程序把日志记录到文件、日志服务器等地方。
  3. 常用的第三方日志提供程序有 Log4Net、NLog、Serilog,推荐使用 NLog 或者 Serilog,它们不仅使用简单,而且功能强大(可以看我之前的文章)
  4. 在分布式环境下,最好采用集中式的日志服务器,各台服务器都把产生的日志写入日志服务器。集中式的日志服务器推荐使用 Exceptionless

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。


http://www.ngui.cc/article/show-2169926.html

相关文章

基于C#开发web网页管理系统模板流程-参数传递

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 当用户长时间未在管理系统界面进行操作&#xff0c;或者用户密码进行了更改&#xff0c;显然用户必须重新登录以验证身份&#xff0c;如何实现这个功能呢&#xff1f; HTTP Cookie&#xff08;也叫 …

Linux:线程概念 线程控制

Linux&#xff1a;线程概念 & 线程控制 线程概念轻量级进程 LWP页表 线程控制POSIX 线程库 - ptherad线程创建pthread_createpthread_self 线程退出pthread_exitpthread_cancelpthread_joinpthread_detach 线程架构线程与地址空间线程与pthread动态库 线程的优缺点 线程概念…

HAL库--LCD实验

屏幕这一块没什么搞头&#xff0c;直接用迪文屏 文章只起个记录作用 显示器分类 LCD简介 Liquid Crystal Display&#xff0c;即液晶显示器&#xff0c;由&#xff1a;玻璃基板、背光、驱动IC等组成。全彩LCD&#xff0c;是一种全彩显示屏&#xff08;RGB565、RGB888&#xff…

java操作数据库语法

1 新建数据库 1.1 新建数据库 1 启动mysql数据库 2 新建数据库 1.2 mysql数据库语法 1 选择数据库 use java_demo1 2 移除数据库 drop database java_web1 3 创建表 CREATE TABLE user (id int(11) PRIMARY KEY AUTO_INCREMENT,name varchar(255) NOT NULL,age int(11)…

unidbg讲解V1

前言 unidbg是什么? unidbg是一个Java项目,可以帮助我们去模拟一个安卓或IOS设备,用于去执行so文件中的算法,从而不需要再去逆向他内部的算法。最终会产出一个jar包,可以被python进行调用。 如何使用unidbg? 下载github上开源的项目:https://github.com/zhkl0228/un…

《pvz植物大战僵尸杂交版》V2.0.88整合包火爆全网,支持安卓、ios、电脑等!

今天来给大家安利一款让人欲罢不能的游戏——《植物大战僵尸杂交版》2.0.88版。这可不是普通的植物大战僵尸&#xff0c;它可是席卷了B站&#xff0c;火爆全网的存在&#xff01; 先说说这个版本&#xff0c;它可是网络上现存最全的植物大战僵尸杂交版整合包。里面不仅有修改工…

分布式文件存储 - - - MinIO从入门到飞翔

MinIO从入门到飞翔 文章目录 MinIO从入门到飞翔0、前言1、分布式文件系统2、MinIO 介绍3、 MinIO安装&#xff08;docker&#xff09;4、基本概念5、通过代码上传文件到MinIO6、封装MinIO为starter7、在其他项目中集成封装好的模块 0、前言 对象存储是一种数据存储架构&#x…

JavaScript快速入门系列-3(函数基础)

第三章:函数基础 3.1 函数定义与调用3.1.1 函数声明3.1.2 函数表达式3.2 参数与返回值3.3 匿名函数与立即执行函数表达式(IIFE)3.3.1 匿名函数3.3.2 立即执行函数表达式3.4 箭头函数3.4.1 箭头函数与this3.5 函数的高级话题3.5.1 闭包3.5.2 函数柯里化3.5.3 高阶函数小结在Jav…

C#聊天室②

客户端 桌面 MyClient client;public Form1(){InitializeComponent();}// 进入聊天室按钮方法private void button1_Click(object sender, EventArgs e){if (!string.IsNullOrEmpty(textBox1.Text)){// 开始连接服务器 封装一个自定义客户端类client new MyClient(); // 给cl…

排名前五的 Android 数据恢复软件

正在寻找数据恢复软件来从 Android 设备恢复数据&#xff1f;本指南将为您提供 5 款最佳 Android 数据恢复软件。浏览这些软件&#xff0c;然后选择您喜欢的一款来恢复 Android 数据。 ndroid 设备上的数据丢失可能是一种令人沮丧的经历&#xff0c;无论是由于意外删除、系统崩…