Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【BlogBook书】6、Serilog:日志管理

【BlogBook书】6、Serilog:日志管理

作者头像
老张的哲学
发布于 2024-02-22 07:49:23
发布于 2024-02-22 07:49:23
29700
代码可运行
举报
文章被收录于专栏:NetCore 从壹开始NetCore 从壹开始
运行总次数:0
代码可运行

框架高度集成Serilog,继承ASP.NETCore官方的ILogger<>接口,作为记录整个系统应用生命周期的日志工具,涵盖了平时企业应用的常见场景:

1、不同日志级别的记录;2、支持将日志输出到控制台;3、支持日志持久化到数据库;4、支持完整记录Sql执行日志;5、支持输出日志到文件;6、支持配置Seq日志中心;

一、相关的依赖注入配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
builder.Host.AddSerilogSetup();


app.UseSerilogRequestLogging(options =>
{
    options.MessageTemplate = SerilogRequestUtility.HttpMessageTemplate;
    options.GetLevel = SerilogRequestUtility.GetRequestLevel;
    options.EnrichDiagnosticContext = SerilogRequestUtility.EnrichFromRequest;
});

相关参数设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Serilog": {
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Information",
        "Microsoft.AspNetCore": "Warning",
        "System": "Warning",
        "System.Net.Http.HttpClient": "Warning",
        "Hangfire": "Information",
        "Magicodes": "Warning",
        "DotNetCore.CAP": "Information",
        "Savorboard.CAP": "Information",
        "Quartz": "Information"
      }
    }
  },

还有日志入库的数据库连接字符串配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"DBS": [  
    /*
      对应下边的 DBType
      MySql = 0,
      SqlServer = 1,
      Sqlite = 2,
      Oracle = 3,
      PostgreSQL = 4,
      Dm = 5,//达梦
      Kdbndp = 6,//人大金仓
    */    
    {
      "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改
      "DBType": 2,
      "Enabled": true,
      "HitRate": 50,
      "Connection": "WMBlogLog.db" //sqlite只写数据库名就行,可以替换其他数据库,并修改DBType即可
    },
]

还有一些配合其他功能(比如Aop、Sqlsugar等)的相关参数设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"AppSettings": {
    "LogToDb": true,
    "LogAOP": {
      "Enabled": false,
      "LogToFile": {
        "Enabled": true
      },
      "LogToDB": {
        "Enabled": true
      }
    },
    "UserAuditAOP": {
      "Enabled": false
    },
    "SqlAOP": {
      "Enabled": true,
      "LogToFile": {
        "Enabled": true
      },
      "LogToDB": {
        "Enabled": true
      },
      "LogToConsole": {
        "Enabled": true
      }
    }
  },

最后还有Seq平台相关配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Seq": {
    "Enabled": true,
    "Address": "http://localhost:5341/",
    "ApiKey": ""
  }

二、使用方式

1、直接注入ILogger<>泛型接口即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private readonly ILogger<BlogController> _logger;

/// <summary>
/// 构造函数
/// </summary>
/// <param name="logger"></param>
/// 
public BlogController(ILogger<BlogController> logger)
{
    _logger = logger;
}


[HttpGet]
[Route("DetailNuxtNoPer")]
public async Task<MessageModel<BlogViewModels>> DetailNuxtNoPer(long id)
{
    _logger.LogInformation("xxxxxxxxxxxxxxxxxxx");
    return Success(await _blogArticleServices.GetBlogDetails(id));
}

2、或直接使用Serilog的Log类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[HttpGet]
[Route("DetailNuxtNoPer")]
public async Task<MessageModel<BlogViewModels>> DetailNuxtNoPer(long id)
{
    Log.LogInformation("yyyyyyyyyyyyyyy");
    return Success(await _blogArticleServices.GetBlogDetails(id));
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NetCore 从壹开始 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.NET Core 日志记录程序和常用日志记录框架
首先,打开VS2019新建一个ASP.NET Core Web Api项目,项目创建好后会有一个集成好的天气预报的类和控制器,接下来,我们的方法就在天气控制器里完成。
GoodTime
2024/03/05
4460
.NET Core 日志记录程序和常用日志记录框架
Abp源码分析之Serilog日志
吴晓阳
2024/11/13
200
在asp.net web api 2 (ioc autofac) 使用 Serilog 记录日志
Serilog是.net里面非常不错的记录日志的库,另外一个我认为比较好的Log库是NLog。 在我个人的asp.net web api 2 基础框架(Github地址)里,我原来使用的是NLog,但是由于好奇心,我决定使用Serilog代替Nlog。 安装: 首先安装 Serilog,通过Package Manager Console或者Nuget管理窗口进行安装: PM> Install-Package Serilog 然后安装 Serilog的Sinks,所谓Sink就是记录Log的途径,比如在控制台
solenovex
2018/03/01
2.2K0
为 ASPNETCORE 7 项目添加 Serilog
这段代码中,我们使用 Log.Logger 创建了一个 Serilog 的日志记录器。然后,我们使用 Log.Information 记录了一条日志。在 CreateHostBuilder 方法中,我们使用 builder.Host.UseSerilog() 将 Serilog 配置到主机中。
newbe36524
2023/08/23
4210
Seq 日志: .NET 应用程序中集成与快速入门
Seq 是一个功能强大且易于使用的日志服务器,特别适合用于集中管理和可视化 .NET 应用程序的日志。它支持结构化日志记录,提供实时查询和分析功能,帮助开发者快速定位和解决问题。
郑子铭
2025/03/14
730
Seq 日志: .NET 应用程序中集成与快速入门
零基础写框架(3): Serilog.NET 中的日志使用技巧
Serilog 是 .NET 社区中使用最广泛的日志框架,所以笔者使用一个小节单独讲解使用方法。
痴者工良
2024/06/19
3950
零基础写框架(3): Serilog.NET 中的日志使用技巧
.NET日志系统 NLog、Serilog、exceptionless
日志级别:Trace < Debug < Information < Warning < Error < Critical
鱼找水需要时间
2024/03/23
3180
.NET日志系统 NLog、Serilog、exceptionless
Serilog.AspNetCore&amp;Serilog.Sinks.Async:提升 ASP.NET Core 日志性能实践
Serilog.AspNetCore 是一个用于 ASP.NET Core 应用程序的日志库,它允许将日志消息通过 Serilog 路由,从而实现灵活的日志记录功能。
郑子铭
2025/03/18
1220
Serilog.AspNetCore&amp;Serilog.Sinks.Async:提升 ASP.NET Core 日志性能实践
asp.net core之日志
日志记录在应用程序开发中起着至关重要的作用,它可以帮助开发人员诊断和调试问题,同时也是监控和性能优化的重要工具。ASP.NET Core 提供了强大且灵活的日志记录功能,本文将详细介绍ASP.NET Core 中的日志记录,包括日志配置、日志类别级别、使用场景以及日志记录提供程序。
饭勺oO
2023/10/18
3250
asp.net core之日志
.NET Core开发实战(第20课:结构化日志组件Serilog:记录对查询分析友好的日志)--学习笔记
之前讲解的日志框架,记录的日志都是文本,而且是非结构化的,这样一串串文本实际上不利于我们去做分析
郑子铭
2021/01/13
1.4K0
Serilog: 功能强大的 .NET 日志库,快速上手与进阶
Serilog 是一个功能强大的 .NET 日志库,以其简洁的配置和灵活的输出方式而受到开发者喜爱。支持多种日志输出目标(如控制台、文件、数据库等),并且可以通过结构化日志的方式记录丰富的上下文信息,便于后续的日志分析和调试。Serilog 还提供了丰富的扩展包,能够轻松集成到各种 .NET 应用程序中,帮助开发者高效地管理和记录日志。
郑子铭
2025/03/14
1100
Serilog: 功能强大的 .NET 日志库,快速上手与进阶
[BlogCore操作文档3] Log4net:多种类型日志实现持久化
整个框架已经集成了多种日志记录:包括审计、异常、请求响应、服务操作、Sql执行语句等,并自动持久化到数据库表。
老张的哲学
2023/08/23
3610
[BlogCore操作文档3] Log4net:多种类型日志实现持久化
.NET下使用 Seq结构化日志系统
    综合考虑,第三点肯定是不靠谱的,第一点成本太高,公司本来就比较忙,那就只能去找一个现成的了…
喝茶去
2019/04/16
1.8K0
.NET下使用 Seq结构化日志系统
分布式事务 | 使用 dotnetcore/CAP 的本地消息表模式
本地消息表模式,其作为柔性事务的一种,核心是将一个分布式事务拆分为多个本地事务,事务之间通过事件消息衔接,事件消息和上个事务共用一个本地事务存储到本地消息表,再通过定时任务轮询本地消息表进行消息投递,下游业务订阅消息进行消费,本质上是依靠消息的重试机制达到最终一致性。其示意图如下所示,主要分为以下三步:
圣杰
2023/02/10
7490
分布式事务 | 使用 dotnetcore/CAP 的本地消息表模式
【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务
日志功能是几乎所有程序或系统都必备的一个功能。该文章通过使用Loki+Grafana来实现日志记录与可视化查询。
愚公搬代码
2022/12/20
7210
【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务
动手造轮子 - 实现基于文件的日志扩展
某些情况下我们可能希望基于文件类导出日志,这样我们可以避免 console 的日志太多不好查找,基于文件就可以比较方便的查看和操作了,于是动手写了一个简单的基于文件的 Microsoft.Extensions.Logging 的日志扩展
郑子铭
2025/02/18
480
动手造轮子 - 实现基于文件的日志扩展
.Net平台流行的日志记录库(Serilog)
在 Visual Studio 中,通过 NuGet 管理器或者 .NET CLI 安装 Serilog 包:
用户11124775
2024/08/29
3690
如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出
这是该系列的第一篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore。
依乐祝
2020/02/14
1.7K0
如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出
零基础写框架(2):故障排查和日志基础
一般来说,使用 IDE 进行断点调试和诊断只适合在本地开发环境,我们可以借助 IDE 中的工具断点调试以及收集程序详细的运行信息,IDE 是功能最全、最有效的诊断程序问题的工具。
痴者工良
2024/06/06
1040
零基础写框架(2):故障排查和日志基础
.NET Core下的日志(1):记录日志信息
记录各种级别的日志是所有应用不可或缺的功能。关于日志记录的实现,我们有太多第三方框架可供选择,比如Log4Net、NLog、Loggr和Serilog 等,当然我们还可以选择微软原生的诊断机制(相关API定义在命名空间“System.Diagnostics”中)实现对日志的记录。.NET Core提供了独立的日志模型使我们可以采用统一的API来完成针对日志记录的编程,我们同时也可以利用其扩展点对这个模型进行定制,比如可以将上述这些成熟的日志框架整合到我们的应用中。本系列文章旨在从设计和实现的角度对.NET
蒋金楠
2018/01/15
1.2K0
.NET Core下的日志(1):记录日志信息
推荐阅读
相关推荐
.NET Core 日志记录程序和常用日志记录框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验