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日志中多出了几条日志,正是我们软件运行的日志
标签:Logging,ServiceCollection,简介,loggingBuilder,services,日志,logger From: https://www.cnblogs.com/luohualiushui1173/p/17913978.html