.net 日志系统

发布时间 2023-10-24 16:10:46作者: LiXiang98

一、在.net 中使用日志系统

1 // 可以直接写Loging Provider
2 services.AddLoging(builder=>{ 
3     builder.AddConsole();//console log
4  ...
5 });

 二、文本日志

 .net 没有提供文本日志,使用第三方的日志库。

  • 日志文件按照日期区分,避免单个日志文件过大。
  • 限制日志总个数或这总大小,隔一段时间删除旧的日志,避免日志文件把磁盘称爆。
  • 限制单个文件大小,避免日志文件太大问题。

2.1 Nlog (可配置结构化日志,比较麻烦)

  1、装nuget包,将配置文件拷到项目根目录文件下;

  2、builder.AddNlog();

  3、Nlog rules可以设置分模块记录日志、可以设置最大文件数maxArchiveFiles、可以设置文件最大存储archvieAboveSize

 2.2 Serilog 结构化日志

  1.nuget包Serilog.AspNetCore

  2.Log.Logger= new LoggerConfiguration().minimumLevel.Debug().Enrich.RromLogContext()

         .WriteTo.Console(new JsonFormatter())

   .WriteTo.Exceptionless()

  .CreateLogger();

   builder.AddSerilog();

  详情查看官网

三、日志分类

不同级别不同模块日志记录到不同地方;(通过使用日志系统的配置功能实现)

四、日志过滤

项目不同阶段需要记录日志不同 刚上线 Debug。。。

五、集中日志服务

  1、公有云厂商提供了日志云服务

  2、Exceptionless 或者 ELK 

  exceptionless 自己部署 ,在https://exceptionless.com/docs/下面找到菜单“self hosting”