Logging简介(1)
Logging:日志系统,用来记录软件系统,用于异常分析
日志级别:Trace<Debug(调试)<Information(信息)<Warning(提醒、警告)<Error(错误)<Critical(关键、生死攸关),可根据实际情况对每一条日志使用不同的级别
日志提供者(LoggingProvider):把日志输出到哪里:控制台、文件、数据库、邮箱、短信、微信等
这篇文件讲解输出到控制台的日志:
1、安装Nuget包:Microsoft.Extensions.Logging,日志系统基础包
2、安装Nuget包:Microsoft.Extensions.Logging.Console,控制台日志输出
3、需要使用Log的类,通过DI注入ILogger<T>即可,T一般就用当前类,这个类的名字会输出到日志,方便定位错误
public class Test { private readonly ILogger<Test> logger; public Test(ILogger<Test> logger)//通过DI注入 { this.logger = logger; } public void Run() { logger.LogDebug("准备登录"); logger.LogWarning("校验失败"); logger.LogWarning("再次校验失败"); logger.LogError("多次登录失败"); try { string str = null; str.Substring(0, 2); } catch (Exception ex) { logger.LogCritical(ex, "critical");//可以输出异常信息 } } }
4、通过DI注册到容器 services.AddLogging(logBuilder=>{logBuilder.AddConsole();//可多个Provider
static void Main(string[] args) { ServiceCollection services = new ServiceCollection(); services.AddLogging(loggingBuilder=> { loggingBuilder.AddConsole(); loggingBuilder.SetMinimumLevel(LogLevel.Debug); }); services.AddScoped<Test>(); using(var sp=services.BuildServiceProvider()) { var test= sp.GetRequiredService<Test>(); test.Run(); } }
运行结果:
EventLog:事件日志,是另外一种LoggingProvider,可以把日志记录到window电脑上(Linux上不可以),并使用事件查看器进行查询
1、安装Nuget包:Microsoft.Extensions.Logging.EventLog
2、在容器中添加 loggingBuilder.AddEventLog()
static void Main(string[] args) { ServiceCollection services = new ServiceCollection(); services.AddLogging(loggingBuilder=> { loggingBuilder.AddConsole();//控制台日志 loggingBuilder.AddEventLog();//事件日志 loggingBuilder.SetMinimumLevel(LogLevel.Debug); }); services.AddScoped<Test>(); using(var sp=services.BuildServiceProvider()) { var test= sp.GetRequiredService<Test>(); test.Run(); } }
注意,AddLogging是运行注册多个日志提供者的
运行后,找到事件查看器,可以看到Window日志中多出了几条日志,正是我们软件运行的日志
分类:
.Net 日志系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)