如何通过代码覆盖 appsettings 设置的接收器属性

问题描述 投票:0回答:1

我的 ASP.NET Web Api 有 appsettings.json 指定 Serilog 和 Serilog.Sinks.Datadog.Logs。
这工作正常,但是,arg“apiKey”是以明文形式指定的,这违反了我们公司的标准。
我想通过代码覆盖该特定属性(在组合根)。
(代码已从某些秘密管理器访问的内容)
有人知道该怎么做吗? (C#)

serilog datadog
1个回答
0
投票

您可以在创建记录器实例的代码中配置 API 密钥。请参阅下面的示例代码。

我通过将 appsettings.json 值替换为 Azure Key Vault url 来处理这种情况。看看这个这里

示例代码:

Log.Logger = new LoggerConfiguration()
    .WriteTo.DatadogLogs("<API_KEY>")
    .CreateLogger();
    
// An example
var position = new { Latitude = 25, Longitude = 134 };
var elapsedMs = 34;

Log.Information("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);
Log.CloseAndFlush();

欲了解更多信息,请查看此处以获取更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.