0

使用 .NET Core 3.1 并导入 nuget 包https://github.com/huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore产生了一个非常规定的 appSettings.json。例如

{
  "env": {
    "name: "dev"
  },
  "Log4NetCore": {
        "Name": "Test",
        "LoggerRepository": "Fantastic",
        "OverrideCriticalLevelWith": "Fatal",
        "Watch": false,
        "UseWebOrAppConfig": false,
        "PropertyOverrides": [
            {
                "XPath": "/log4net/appender[@name='RollingFile']/file",
                "Attributes": {
                    "Value": "overridedFileName.log"
                }
            },
            {
                "XPath": "/log4net/appender[@name='RollingFile']/maximumFileSize",
                "Attributes": {
                    "Value": "200KB"
                }
            },
            {
                "XPath": "/log4net/appender[@name='RollingFile']/file"
            }
        ]
    }
}

在 AWS ECS 容器中,我们在需要时覆盖 appsettings,但这是通过与 json 中的路径对应的名称完成的:

{
  ...
  "secrets": [
                {
                    "name": "env:name",
                    "valueFrom": "<<ARN>>"
                }
            ]
...
}

如您所见,现在的难点在于获取 Log4NetCore 设置的正确路径:

{
  ...
  "secrets": [
                {
                    "name": "Log4NetCore:PropertyOverrides:<<?????>>",
                    "valueFrom": "<<ARN>>"
                }
            ]
...
}

有没有办法使用 name + valueFrom 中的数组甚至使用 xpath 来处理这个问题?

4

0 回答 0