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

前言

实际上,.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,编写日志记录代码,注意注释

    c# 复制代码
    // 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

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

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

相关推荐
van久9 小时前
.Net Core 学习: Razor Pages -- EF Core简介
学习·.netcore
烛阴10 小时前
C#异常概念与try-catch入门
前端·c#
yue00813 小时前
C# Environment类的介绍
开发语言·c#·environment
c#上位机14 小时前
halcon图像去噪—高斯滤波
c#·上位机·halcon·机器视觉
van久14 小时前
.Net Core 学习:Razor Pages -- 依赖注入
学习·.netcore
神奇的板烧15 小时前
Java泛型不变性引发的类型转换问题及解决方案
java·c#
Aevget15 小时前
界面控件开发包DevExpress v25.1.7更新上线——修复一些小bug
c#·wpf·winform·devexpress·ui开发·用户界面
Pu_Nine_917 小时前
JavaScript后端日志系统:使用Winston构建专业日志
后端·express·日志·commonjs·winston
Q1808095117 小时前
手撕BP与CNN:不依赖外源库,探寻神经网络原理
c#
van久17 小时前
.Net Core 学习:Razor Pages -- EF Core工作原理
数据库·学习·.netcore