前言
实际上,.NET Core 内部也内置了一套日志系统,它是一个轻量级的日志框架,用于记录应用程序的日志信息。
它提供了 ILogger 接口和 ILoggerProvider 接口,以及一组内置的日志提供程序(如 Console、Debug、EventSource 等),可以方便地进行日志记录和输出。
平时做一些测试或个人的研究,建议直接使用 .NET Core 自带的日志系统就可以了,方便快捷。
Step By Step 步骤
-
创建一个 .NET Core Console 项目
-
从 Nuget 安装以下包
Microsoft.Extensions.Logging.Console
-
打开 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失败");} }
-
运行后就可以看到效果了
总结
- .NET Core 中自带的日志系统可以把日志记录到控制台、事件日志、调试窗口等地方,非常适合平时个人做测试或者代码研究
- .NET Core 中的日志提供了标准接口,允许开发人员编写第三方实现,使用第三方日志提供程序把日志记录到文件、日志服务器等地方。
- 常用的第三方日志提供程序有 Log4Net、NLog、Serilog,推荐使用 NLog 或者 Serilog,它们不仅使用简单,而且功能强大(可以看我之前的文章)
- 在分布式环境下,最好采用集中式的日志服务器,各台服务器都把产生的日志写入日志服务器。集中式的日志服务器推荐使用 Exceptionless
我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。
都看到这了,求个点赞、关注、在看三连呗,感谢支持。