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"
          }
        }
      }
    ]
  }

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

相关推荐
量子炒饭大师3 天前
MySQL 5.7 在 CentOS 7 环境安装:从清理 MariaDB 到初始化与完善配置
数据库·mysql·centos·mariadb
暖核7 天前
Keepalived + LVS(DR)+ MariaDB 主主高可用架构实战指南
架构·mariadb·lvs
SatanII8 天前
mariadb
数据库·mariadb
刘某的Cloud10 天前
Galera Cluster部署 mariadb 节点down机,log sequence number恢复
linux·运维·数据库·负载均衡·mariadb·集群·高可用
刘某的Cloud16 天前
Galera Cluster mariadb 生产环境常见问题排查与运维指南
linux·运维·数据库·mariadb·集群高可用
谜之锋1 个月前
银河麒麟 Debian 系统离线deb包安装Mariadb 数据库指南
数据库·debian·mariadb
IT瑞先生1 个月前
MariaDB与Mysql差异及版本对照
数据库·mysql·mariadb
qetfw1 个月前
CentOS 7 搭建 MariaDB 数据库服务
linux·数据库·centos·mariadb
Web极客码1 个月前
MariaDB 将成为 cPanel 中的默认数据库
服务器·mariadb·cpanel
三8441 个月前
PHP+MariaDB/MySQL搭建 社区论坛
mysql·php·mariadb