Abp6.0 使用 appsettings.json配置Serilog.Sinks.MariaDB

Abp6.0中已经启用Serilog,使用Serilog.Sinks.MariaDB包可以保存到MariaDB,mysql中

一种做法是在var loggerConfiguration = new LoggerConfiguration( )后使用WriteTo.MariaDB扩展方法来配置,这样在代码中配置不够灵活,修改起来也不方便

其实在Serilog.Sinks.MariaDB的github上很直接的提供了另外一种方式,通过配置文件来配置。这里需要使用*Serilog.Settings.Configuration*来读取配置文件。关于配置,其实是有默认配置形式的。短短几行代码就解决了问题,

//生成一个ConfigurationBuilder,把配置文件加进来
  var configuration = new ConfigurationBuilder()
  .SetBasePath(Directory.GetCurrentDirectory())
  .AddJsonFile("appsettings.json")
  .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", true)
  .Build();

  var loggerConfiguration = new LoggerConfiguration( )
      .ReadFrom.Configuration(configuration)//从文件中读取配置

配置文件的格式如下,具体含义请找官方文档:

  "Serilog": {
    "Using": [
      "Serilog.Sinks.MariaDB"
    ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "MariaDB",
        "Args": {
          "connectionString": "Server=192.168.1.1;Port=12345;Database=xxxx;Uid=xxx;Pwd=xxxxxxxxx;",
          "autoCreateTable": true,
          "tableName": "Logs",
          "restrictedToMinimumLevel": "Warning",
          "batchPostingLimit": 1000,
          "period": "0.00:00:30",
          "options": {
            "PropertiesToColumnsMapping": {
              "Exception": "Exception",
              "Level": "Level",
              "Message": "Message",
              "MessageTemplate": "MessageTemplate",
              "Properties": "Properties",
              "Timestamp": "Timestamp"
            },
            "TimestampInUtc": true,
            "ExcludePropertiesWithDedicatedColumn": true,
            "EnumsAsInts": true,
            "LogRecordsCleanupFrequency": "0.02:00:00",
            "LogRecordsExpiration": "31.00:00:00"
          }
        }
      }
    ]
  }

我们需要创造,也需要借鉴,毕竟站在巨人的肩膀上才会更高

相关推荐
航月18 小时前
FTP、ISCSI、CHRONY、DNS、NFS、DOCKER、MARIADB、NGINX、PHP、CA各服务开启方法
nginx·docker·mariadb
Crazy Struggle7 天前
.NET 平台 WPF 通用权限开发框架 (ABP)
.net·wpf·abp·通用权限管理
huhy~9 天前
基于centos7.9搭建MariaDB10.5高可用集群
linux·mariadb
VaporGas11 天前
mariadb数据库中文乱码问题
数据库·mariadb
tianxingzhe3716 天前
使用Radzen Blazor组件库开发的基于ABP框架炫酷UI主题
ui·blazor·abp·.net blazor·radzen blazor
杨若瑜17 天前
MySQL、MariaDB、OceanBase远程异地定时备份脚本
mysql·oceanbase·mariadb
风随心飞飞23 天前
意外断电 导致docker 部署禅道 的mariadb 启动报错
数据库·mariadb
熊猫在哪24 天前
mariadb设置远程访问
服务器·数据库·mariadb
CCSBRIDGE1 个月前
在 MariaDB 中创建一个新的数据库实例
数据库·mariadb
IT规划师1 个月前
Serilog文档翻译系列(八) - 记录器的生命周期、可靠性
c#·日志·.net core·serilog·.netcore日志