【问题标题】:Add a logging entry to appsettings.json via a custom NuGet package通过自定义 NuGet 包将日志记录条目添加到 appsettings.json
【发布时间】:2021-04-27 18:27:19
【问题描述】:

我有一个为我的公司创建的 NuGet 包。它工作得很好。但它在System.Net.Http.HttpClient.OAuthClient 命名空间中包含一些代码,这些代码在Information 级别的日志中非常健谈。

我想让我的 NuGet 包自动添加以下行:

"System.Net.Http.HttpClient.OAuthClient": "Error"

在安装它的项目的appsettings.json 文件的 Logging->LogLevel 部分的末尾(如果它还没有的话)。

或者失败了,有没有办法将这些日志抑制到代码中的错误日志级别?

【问题讨论】:

    标签: .net-core nuget .net-core-3.1


    【解决方案1】:

    这只是我的个人观点,并没有直接回答你的问题,但它不适合评论,所以在这里发布。

    我认为 appsettings.json 中的内容不是由您的包来决定的。比如说生产和测试应用程序设置,并且在测试中某些项目的开发人员实际上希望看到尽可能多的日志。

    如果您的包会修改它,您将剥夺使用您的包的开发人员的决定权。或者,想象一下,使用您的包的项目也使用了System.Net.Http.HttpClient.OAuthClient 命名空间,但用于自己的目的。开发人员可能希望再次查看来自该命名空间的日志。

    我建议将此信息放入您的包的文档中,然后每个项目的开发人员应自行决定是否要抑制日志。

    评论后更新: 可能这会让你到达某个地方:http://www.roundcrisis.com/2014/08/03/Nuget-install-tricks/ 基本思想是您可以将 init.ps1 脚本与将在安装包时运行的 nuget 包一起分发。使用 powershell,您几乎可以做任何事情,包括替换文本文件中的字符串。 也看看这个 SO 问题:Execute an action after my nuget package is installed

    【讨论】:

    • 如果我正在编写一个公开可用的包,我可能会同意。但我正在为我自己的开发人员写作。我知道它们中的大多数只会包含 NuGet 而不必担心文档。通常我只会说,“哦,好吧,那是他们的损失。”但我的团队也运行日志系统。离开它意味着我们必须在日志系统中保存的数据量也会增加。所以,最后,我试图保护我自己的系统免受我的开发人员的伤害。
    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 2020-04-02
    • 2011-01-12
    • 2016-12-21
    • 2018-10-06
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多