首页 > 数据库 >关于使用Serilog配置MySql数据库和appsettings的问题

关于使用Serilog配置MySql数据库和appsettings的问题

时间:2023-05-17 11:45:12浏览次数:36  
标签:Information Serilog appsettings 数据库 MySql logger true

1、项目使用dtonet 6 WebApi。

2、Nuget包:

用来访问mysql数据库

Pomelo.EntityFrameworkCore.MySql

Serilog日志

Serilog

配合dotnet

Serilog.AspNetCore

读取环境变量配置

Serilog.Settings.Configuration

Serilog读取MySql

Serilog.Sinks.MySQL

输出到控制台中

Serilog.Sinks.Console

3、配置Serilog
builder.Host.UseSerilog((context, services, loggerConfiguration) => loggerConfiguration .ReadFrom.Configuration(context.Configuration) .Enrich.FromLogContext() );
使用Serilog记录Request
app.UseSerilogRequestLogging();

4、配置appsettings
"Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Information", "System": "Information" } }, "WriteTo": [ { "Name": "Console" }, { //MySQL要大写,MySql这样写的话会不认,提示 "Name": "MySQL", "Args": { "connectionString": "Data Source=***;Database=***;AllowLoadLocalInfile=true;User ID=***;Password=***;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=***;sslmode=none;", "tableName": "Logs", //自动生成表 "autoCreateSqlTable": true } } ], "Enrich": [ "FromLogContext" ], "Properties": { "Application": "Serilog.Test.WebApi", "Environment": "Development" } }

5、项目已经运行过,所以库表是已经存在的,但是第一次运行时,库和表都是不没有的

Serilog不会自动创建数据库,但是会自动创建表,所以一般来说的话,可以将Serilog的表和其他数据库放在一起,这样就避免了需要手动创建数据库的问题。

6、配置好了,运行项目,并查看数据库内容。

这些是在控制台输出的,因为也是配置了控制台的。

这些是写入到数据库中的。
只是因为级别设置成了Information,导致记录的内容有点多,

7、在控制器中配置。
`[Route("api/[controller]")]
[ApiController]
public class SerilogController : ControllerBase
{
private readonly ILogger _logger;

    public SerilogController(ILogger<SerilogController> logger)
    {
        _logger = logger;
    }

    [HttpGet]
    public string Get()
    {
        _logger.LogInformation("Test Test.");
        return "begin";
    }
}`

结语:Serilog十分好用,跟ILogger结合,并不需要太多的额外代码就能使用。

以上内容仅供参考,如有错误,万望指正。

补充:生产环境根据需求定义自己的记录级别即可。
例如:
Verbose,
Debug,
Information,
Warning,
Error,
Fatal,

标签:Information,Serilog,appsettings,数据库,MySql,logger,true
From: https://www.cnblogs.com/1leyou/p/17408062.html

相关文章

  • 面试官:MySQL 日期时间类型怎么选?
    构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如timestamp和datetime以及使用int来存储unixtimestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类型来存储日期时间呢?那我们就一步一步来分析他们的特点,这样我们根据......
  • mysql 基础知识
    --_在mysql中是表示任一字符,下面查的是名字等于*Aaaa的SELECT*FROMUSERWHERENAME='_Aaaa';--如果就要查名字是_Aaaa的人需要使用转移字符,把_当成普通字符SELECT*FROMUSERWHERENAME='\_Aaaa';--或者自定义字符SELECT*FROMUSERWHERENAME='$_Aaaa'......
  • 一个好用的命令行mysql客户端 mycli
    官网:https://www.mycli.net/支持自动补全,高亮提示,非常好用;查看表结构\dtsys_menu;有点遗憾的是没有展示注释信息,不可也可以用其它语句查看:showfullcolumnsfromsys_menu;showcreatetablesys_menu;查询结果导出\Tcsv;\o~/export.csv;SELECT*FROMt_t......
  • MySQL触发器Trigger加载以及目前局限
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:亮文章来源:GreatSQL社区原创概念介绍首先需要知道MySQL中触发器特点,以及表table相关触发器加载方式MySQL中单个trigger仅支持单事件触发即单......
  • MYSQL因IN的范围太大导致索引失效问题
    背景最近发现有个用于统计的门店串码激活数量的SQL特别慢,将其摘出来大致如下SELECTa.sku_idasskuId,a.store_idasstoreId,count(*)assaleQtyFROMall_imei_infoawherea.activated_time>=1675530000000anda.activated_time<=1675616399999anda.stor......
  • mysql从5.7升级到8.0的注意事项
    ####################################(1)sql_mode全局变量:在升级MySQL版本到8.0的过程中,需要关注sql_mode参数默认值的变化,8.0版本sql_mode不支持NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有NO_AUTO_CREATE_USER(2)mysql_native_password插件:MySQL8.0.4开始,默认身份认证开始改变......
  • Oracle版面本的MySQL8.0的配置文件 my.cnf
    ##############################创建用户和用户组:groupaddworkuseraddwork  准备目录:mkdir-p/home/work/mysql_3306mkdir-p/home/work/mysql_3306/datamkdir-p/home/work/mysql_3306/etcmkdir-p/home/work/mysql_3306/tmpmkdir-p/home/work/mysql_3306/logmkd......
  • Windows安装、配置、卸载MySQL教程
    MySQL是一个关系型数据库管理系统,目前为Oracle旗下产品,它具有开源、体积小、速度快的优点,许多网站使用的都是MySQL数据库。简单而言,MySQL数据库核心功能就是用来存储数据的。MySQL数据库分为社区版和商业版,这里介绍的是社区版的安装教程一、下载MySQL打开MySQL官网下载链......
  • mysql update语法 竟然不支持limit区间限制
    首先查询可以这样写,没毛病的SELECT*fromaLIMIT1000,2000 1.然后看一个不是区间的limit,更新满足条件的前1000条,没问题updateaseta.imp_date=4wherea.is_sync=0limit10002.这样写是错误的updateaseta.imp_date=4wherea.is_sync=0limit1001,2000......
  • .Net 5 CanalSharp Mysql CDC (增量同步,捕获变更数据)Docker 系列之 Canal (CDC 增量
    CanalSharp阿里云的解决方案,需要两部分Canal 服务端要和Mysql连在一起(目前我是用docker部署的服务)另外一部分就是CanalSharp单独的客户端服务(.Net5服务)CanalSharp文档可以参考:https://canalsharp.azurewebsites.net/zh/安装服务,可以点击下边的连接。Docker系列之Canal......