前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >造轮子之日志

造轮子之日志

作者头像
饭勺oO
发布2023-10-18 19:54:49
1480
发布2023-10-18 19:54:49
举报

在日常使用中日志也是我们必不可少的一环,在原生日志组件中支持的日志驱动比较少,所以我们需要使用一些三方日志组件来扩展我们的日志记录。

集成Serilog

三方日志组件有很多,如NLOG,LOG4NET等等,这里个人习惯,使用Serilog。 Serilog的集成方式非常简单。

安装Nuget包

代码语言:javascript
复制
Serilog.AspNetCore
Serilog.Sinks.Async
Serilog.Sinks.File

在Program中添加代码:

代码语言:javascript
复制
var builder = WebApplication.CreateBuilder(args);

// logging
Log.Logger = new LoggerConfiguration()
#if DEBUG
    .MinimumLevel.Debug()
#else
    .MinimumLevel.Information()
#endif
    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
    .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
    .WriteTo.Async(c=>c.Console())
    .WriteTo.Async(c=>c.File("Logs/log.txt", rollingInterval: RollingInterval.Day))
    .CreateLogger();

builder.Host.UseSerilog();

就这样最简单的完成了我们Serilog的集成。 上面代码我们配置了日志记录级别,和相关过滤条件,以及控制台输出和文件输出,文件输出自动按每天分文件。 这里使用了一个Serilog.Sinks.Async的包,这个包把日志采用异步的方式写入,可以提高我们日志的写入性能。

当然,如果追求日志更灵活配置,可以使用Serilog.Settings.Configuration这个包,这个包可以从配置文件中读取我们的日志配置。

同时Serilog.Sinks提供了很多日志输出方式,包括日志输出到ELK,SqlServer,Email等等,当然,我们也可以自定义Sinks将日志写入我们自己的日志系统中。按照实际需求场景配置即可。

轮子仓库地址https://github.com/Wheel-Framework/Wheel

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集成Serilog
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档