在 AppSettings.json 中配置 Serilog 接收器 MsSqlServer 的列选项

2024-02-05

我正在尝试确定是否可以在中配置 serilog 接收器 mssqlserver 的列选项appsettings.jsonASP.Net Core 2 项目的文件。

我在中创建并配置记录器Program.cs file.

        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 int Main(string[] args)
        {



            Log.Logger = new LoggerConfiguration()
                //.Enrich.WithProperty("AppName", "One Badass App") // Adds property to XML structure in properties column
                .ReadFrom.Configuration(Configuration)
                .CreateLogger();

                try
                {
                    Log.Information("Starting web host");
                    BuildWebHost(args).Run();
                    return 0;
                }
                catch (Exception ex)
                {
                    Log.Fatal(ex, "Host terminated unexpectedly");
                    return 1;
                }
                finally
                {
                    Log.CloseAndFlush();
                }
        }

我可以从 appsettings.json 文件构建配置文件,该文件包含一个 Serilog 节点,其中包含要使用的连接字符串和表的信息。

{
  "AppSettings": {
    "Application": {
      "Name": "Payment Processing API",
      "Version":  "1.0"
    }
  },
  "ConnectionStrings": {
    "localPaymentProcessingDb": "Server=(localdb)\\mssqllocaldb;Database=PaymentProcessing;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Serilog": {
    "MinimumLevel": "Information",
    "WriteTo": [
      {
        "Name": "MSSqlServer",
        "Args": {
          "connectionString": "Server=(localdb)\\mssqllocaldb;Database=PaymentProcessing;Trusted_Connection=True;MultipleActiveResultSets=true",
          "tableName": "Logs"
        }
      }
    ]
 }

有一个悬而未决的问题Github https://github.com/serilog/serilog-sinks-mssqlserver/issues/109为此,但我还没有找到任何其他相关信息。

如果列选项无法在appsettings.json,它们应该在 ASP.Net Core 2 项目中的何处以及如何配置?


如果其他人偶然发现了同样的问题,问题中链接的 GitHub 问题现在包含答案:

现在可以使用最新的 SQL 接收器和 Serilog.Settings.Configuration 包。

另外,我知道这个问题需要 .NET Core 2 的答案,听起来链接的 GitHub 页面回答了 2 的问题,我正在使用 .NET Core 3.1,以下内容对我有用(希望它也适用于 2)

我安装了Serilog.Settings.ConfigurationNuget 包并使用以下 Serilog appsettings.json 配置:

"Serilog":{
   "MinimumLevel":"Information",
   "WriteTo":[
      {
         "Name":"MSSqlServer",
         "Args":{
            "connectionString":"DbContext",
            "tableName":"EventLog",
            "autoCreateSqlTable":true,
            "columnOptionsSection":{
               "addStandardColumns":[
                  "LogEvent"
               ],
               "removeStandardColumns":[
                  "MessageTemplate",
                  "Properties"
               ]
            }
         }
      }
   ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AppSettings.json 中配置 Serilog 接收器 MsSqlServer 的列选项 的相关文章

随机推荐

  • 使 MSDeploy (Visual Studio) 不删除 App_Data 文件夹,而是删除其他所有内容

    我正在使用 Visual Studio 的Publish按钮来部署我的网站 并希望在服务器上有一个不同的 App Data 文件夹 有一个复选框Leave extra files on destination do not delete 这
  • C# 中的高性能 TCP 服务器

    我是一名经验丰富的 C 开发人员 但到目前为止我还没有开发过 TCP 服务器应用程序 现在我必须开发一个高度可扩展的高性能服务器 可以处理至少 5 10 000 个并发连接 通过 GPRS 从 GPS 设备获取原始字节数据 一个常见的通信流
  • 在 .net 网站中生成文本文件的最佳方法是什么?

    我的 vb net Web 应用程序中有一个页面 需要将一堆数据放入文本文件中 然后将其提供给用户下载 在 net Web 服务器上构建此类文本文件的最佳 最有效方法是什么 编辑 为了回答下面的问题 这将是下载一次然后丢弃的文件 更新 我将
  • dma_mmap_coherent 和 remap_pfn_range 有什么区别?

    目前 我正在使用示例驱动程序 https github com claudioscordino mmap alloc blob master mmap alloc c从中学习 并从中我建立了自己的自定义驱动程序 mmap 代码几乎是相同的
  • Phonegap Android InAppBrowser 不工作

    我正在使用 Phonegap Cordova 3 0 0 开发 Android 应用程序 当我调用 InAppBrowser 时 我得到了运动事件 mTouchMode 4错误 并且InAppBrowser功能不起作用 那么我该如何解决这个
  • 正则表达式将数字与 Alpha 分开

    我有一堆字符串 10people 5cars 我该如何将其拆分为 10 people 5 cars 它可以是任意数量的数字和文本 我正在考虑编写某种正则表达式 但我确信在 Python 中有一种简单的方法可以做到这一点 gt gt gt r
  • tkinter 非常慢 - 如何加快速度或使用不同的库?

    我正在使用 tkinter 生成 2D 形态图 我发现它非常慢 例如 此脚本在我的 8 核 Xeon 上花费了近 10 秒 usr bin env python3 import random import tkinter as tk A 3
  • CyclicDist 在多个语言环境中变慢

    我尝试使用以下方法实现矩阵乘法CyclicDist module 当我使用一种语言环境与两种语言环境进行测试时 一种语言环境要快得多 是因为两个 Jetson nano 板之间的通信时间真的很长还是我的实现没有利用这种方式CyclicDis
  • Java 8collect()仅isPresent()可选值[重复]

    这个问题在这里已经有答案了 在 Java 8 中是否有更优雅的方法来实现这一目标 list stream map e gt myclass returnsOptional e filter Optional isPresent map Op
  • 使用c实现rsa加密解密

    我正在尝试使用 Open SSL 编写 RSA 加密和解密的 C 代码 但我不能这样做 我用谷歌搜索了它 但无论我从互联网上得到什么代码 它都超出了我的想象 main函数在这里 这是我从堆栈溢出中得到的 我尝试使用它 但它不起作用 可能是我
  • 如何让div的高度占据全部空间?

    这是我的 css 规则和标记 div style height 100 div style width 220px margin left 100px font size 16px height 1 div class navbar inn
  • 下标超出范围 - 如何分配变量以引用工作表中的单元格

    如何正确分配变量来存储对单元格的引用 最后一行抛出下标超出范围错误 Public Sub CommandButton1 Click Dim variance As Range Dim risk As Range Dim time As Ra
  • javascript 未在页面加载时执行?

    在我的html中 在我的 pr
  • 如何在多个报表中使用子报表或从子报表创建父报表?

    我在 Visual Studio 中有一个名为 MainReport 的 Crystal Report 它还有一个子报表 子报表的内容是标题详细信息 但现在其他几个报表都需要这样做 有没有办法在其他报表中重复使用子报表 或者将其从子报表更改
  • 解析来自traceroute命令的数据

    我正在尝试解析 跳数 值traceroute命令并用 bash 脚本输出 有什么提示吗 很新所以谢谢 到目前为止我的脚本看起来像这样 bin bash parse traceroute for hops and output to stdo
  • 在 WIX 中立即执行自定义操作

    有没有办法在第一个对话框 欢迎 出现后立即在 WIX 中执行自定义操作 要求是检查先决条件 其中一些需要自定义操作 当我们单击下一个对话框时 可以执行自定义操作 但标准 WIX 先决条件将与我们的自定义先决条件分开确定 我们需要的自定义操作
  • 创建带有阴影的矢量可绘制对象以覆盖图像

    I would like to achieve a layout that looks like the desired image as part of the initial app state that informs the use
  • Github windows:提交失败:无法创建新提交

    I have http windows github com http windows github com 我当前的项目有大约 20k 个文件 大约 150MB 而且不是说它有多慢 而且我现在什么也做不了 它甚至不允许我提交 我收到此错误
  • 没有 AJAX 的 ASP.NET MVC + jqGrid

    我有一个 ASP NET MVC 应用程序 它正在对产品数据库执行搜索 我想使用 TreeGrid 模块在 jqGrid 中显示结果 我真的不需要网格是 AJAX y 的 因为数据是静态的 而且它足够小 可以一次全部发送到客户端 第一个问题
  • 在 AppSettings.json 中配置 Serilog 接收器 MsSqlServer 的列选项

    我正在尝试确定是否可以在中配置 serilog 接收器 mssqlserver 的列选项appsettings jsonASP Net Core 2 项目的文件 我在中创建并配置记录器Program cs file public stati