日志系统
一、日志基本概念
1、日志级别:Trace<Debug< Information <Warning< Error < Critical
信息 警告 错误 生死攸关
2、日志提供者(LoggingProvider):把日志输出到哪里。控制台、文件、数据库等。3、.NET的日志非常灵活,对于业务代码只要注入日志对象记录日志即可,具体哪些日志输出到哪里、什么样的格式、是否输出等都有配置或者初始化代码决定。
二、日志输出
1、输出到控制台
1、NuGet: Microsoft.Extensions.Logging//日志框架的基础包
Microsoft.Extensions.Logging.Console//往控制台输出得用这个
2、DI注入:services.AddLogging(logBuilder=>{logBuilder.AddConsole();//可多个Provider});3、需要记录日志的代码,注入ILogger<T>即可,T一般就用当前类,这个类的名字会输出到日志,方便定位错误。然后调用LogInformation()、LogError等方法输出不同级别的日志,还支持输出异常对象。
控制台操作安装包
![](https://img-blog.csdnimg.cn/img_convert/e1ebbb741804470f3c16afe35d4e22b4.png)
下面编写代码
新建一个Test1类 编写日志内容
namespaceLoggingDemo1
{
internalclassTest1
{
privatereadonlyILogger<Test1>logger;
publicTest1(ILogger<Test1>Logger)
{
this.logger=logger;
}
publicvoidTest()
{
logger.LogDebug("开始执行数据库同步");
logger.LogDebug("连接数据库成功");
logger.LogWarning("查找数据最终失败..重试第一次");
logger.LogWarning("查找数据失败,重试第二次");
logger.LogError("查找数据最终失败");
}
}
}
然后program类内容为
namespace LoggingDemo1
{
internal class Program
{
static void Main(string[] args)
{
ServiceCollection services = new ServiceCollection();
services.AddLogging(logBuilder => {
logBuilder.AddConsole();//打印到控制台
});
services.AddScoped<Test1>();//把test1对象注册到DI中
using (var sp = services.BuildServiceProvider())
{
var test1 = sp.GetRequiredService<Test1>();
test1.Test();
}
}
}
}
现在输出结果为
![](https://img-blog.csdnimg.cn/img_convert/640d875dbb538bf3e0f1b8134ecb56ec.png)
没有Debug的输出
因为他的级别太低 默认不输出
想要让他输出还可以配置级别
设置最低级别
![](https://img-blog.csdnimg.cn/img_convert/3108d8a15822b596d59df7a8bbf8216c.png)
这样就输出了
![](https://img-blog.csdnimg.cn/img_convert/88983ba298c1dfb8bf372c9995e8ab8a.png)
2、NLog配置到文本文件
1、.NET没有内置文本日志提供者。第三方有Log4Net、NLog、Serilog等。老牌Log4Net另搞一套,不考虑。2、NLog,NuGet安装: NLog.Extensions.Logging(using NLog.Extensions.Logging;) 。项目根目录下建nlog.config,注意文件名的大小写(考虑linux)也可以是其他文件名,但是需要单独配置。约定大于配置.
nlog.config配置信息可以直接去官方拷贝
3、增加logBuilder.AddNLog()
一、配置文本文件
一、去官网引入包
NuGet\Install-Package NLog.Extensions.Logging -Version 5.2.1
![](https://img-blog.csdnimg.cn/img_convert/d5bb8fc1cfac0f36c9f80a8eef022221.png)
![](https://img-blog.csdnimg.cn/img_convert/2d2720b2ecffe33992c58667350bbd30.png)
二、导入配置文件
![](https://img-blog.csdnimg.cn/img_convert/5855d66dfd2b7a8b0dace2332a044127.png)
![](https://img-blog.csdnimg.cn/img_convert/844df2e51ac03aed33864a556cda9772.png)
![](https://img-blog.csdnimg.cn/img_convert/9a8370b582821a6297e6423da8655134.png)
![](https://img-blog.csdnimg.cn/img_convert/70f72a5b0ed4f98e607a38d6513feae2.png)
三、修改路径
它默认写入的路径是C盘,进行修改路径
![](https://img-blog.csdnimg.cn/img_convert/8945394ec19f355bab8db7e7f3caad1e.png)
四、修改配置文件属性
![](https://img-blog.csdnimg.cn/img_convert/27d2b956ceaa8f89907b925e82a88d66.png)
![](https://img-blog.csdnimg.cn/img_convert/eb686ee2ada2beb97c392599a08244e5.png)
进行输出并且到对应的目录查看文件
![](https://img-blog.csdnimg.cn/img_convert/f61ed605fb1c889999f332d452e08ce4.png)
写入成功