【问题标题】:serilog cant add custom property to database tableserilog 无法将自定义属性添加到数据库表
【发布时间】:2020-11-27 22:43:19
【问题描述】:

使用这个 serilog 配置,它可以很好地记录到数据库,但决定将 clientip 保存为新列,

已安装 Serilog.Enrichers.ClientInfo 包。

它将客户端 ip 作为内部文本保存到属性列,但我希望将其保存到表中的 clientip 列。

appsettingsjson:

{
  "AllowedHosts": "*",
  "Serilog": {
    "MinimumLevel": "Information",
    "Using": [ "Serilog.Enrichers.ClientInfo" ],
    "Enrich": [ "WithClientIp", "WithClientAgent" ],
    "WriteTo": [
      {
        "Name": "MSSqlServer",
        "Args": {
          "connectionString": "Server= ...",
          "tableName": "Log"
        }
      }
    ]
  }
}

API:

[HttpGet]
    public IActionResult Get()
    {
        Log.Information("This is your Ip: {ClientIp}");

程序.cs:

public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
        .AddEnvironmentVariables()
        .Build();

        public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(Configuration)
            .CreateLogger();

            try
            {
                Log.Information("Getting the motors running...");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Host terminated unexpectedly");
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }

【问题讨论】:

    标签: asp.net-core serilog


    【解决方案1】:

    如果你想要额外的列,你需要configure them

    {
      "AllowedHosts": "*",
      "Serilog": {
        "MinimumLevel": "Information",
        "Using": [ "Serilog.Enrichers.ClientInfo" ],
        "Enrich": [ "WithClientIp", "WithClientAgent" ],
        "WriteTo": [
          {
            "Name": "MSSqlServer",
            "Args": {
              "connectionString": "Server= ...",
              "tableName": "Log",
              "columnOptionsSection": {
                "additionalColumns" [
                  { "ColumnName": "ClientIp", "DataType": "varchar", "DataLength": 45 }
                ]
              }
            }
          }
        ]
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 2023-03-27
      相关资源
      最近更新 更多