gpt4 book ai didi

spring-cloud - 当 Spring Cloud Config 使用 Git 或 File Based 以外的后端时,无法使用 log4j-spring-cloud-config-client

转载 作者:行者123 更新时间:2023-12-04 07:48:39 28 4
gpt4 key购买 nike

显然,要将 log4j-spring-cloud-config-client 与 Spring Cloud Config 一起使用,您需要利用 SearchPathLocator 功能来根据特定 URI 提取原始文件。来自
Spring-cloud-config 代码它只出现了 JGitEnvironmentRepositoryNativeEnvironmentRepository实现该接口(interface)并提供该功能。
在本地运行,如果我点击以下端点,我会返回一个原始 log4j2 配置文件:http://localhost:8088/config-server-properties-poc/default/master/log4j2.xml。
当我尝试使用 S3 后端时,我得到一个 404,并且它不会尝试搜索该特定文件。我可以通过将我的文件命名为 log4j2-default.json 来解决这个问题(不支持 XML)。当我点击以下 URL 时,我可以取回我的属性,但格式不正确
http://localhost:8088/log4j2/default
格式

{
"name": "log4j2",
"profiles": ["default"],
"label": null,
"version": null,
"state": null,
"propertySources": [{
"name": "log4j2",
"source": {
"configuration.appenders.appender[0].PatternLayout.Pattern": "${logging_pattern}",
"configuration.appenders.appender[0].name": "Console",
"configuration.appenders.appender[0].target": "SYSTEM_OUT",
"configuration.appenders.appender[0].type": "Console",
"configuration.loggers.Root.AppenderRef.ref": "Console",
"configuration.loggers.Root.level": "info",
"configuration.loggers.logger[0].AppenderRef.ref": "Console",
"configuration.loggers.logger[0].additivity": "false",
"configuration.loggers.logger[0].level": "info",
"configuration.loggers.logger[0].name": "com.paychex",
"configuration.loggers.logger[1].AppenderRef.ref": "Console",
"configuration.loggers.logger[1].additivity": "false",
"configuration.loggers.logger[1].level": "info",
"configuration.loggers.logger[1].name": "com.paychex.traceability",
"configuration.loggers.logger[2].AppenderRef.ref": "Console",
"configuration.loggers.logger[2].level": "WARN",
"configuration.loggers.logger[2].name": "org.apache.catalina.startup.VersionLoggerListener",
"configuration.properties.property[0].name": "logging_pattern",
"configuration.properties.property[0].value": "%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX},severity=%p,thread=%t,logger=%c,%X,%m%n",
"configuration.properties.property[1].name": "traceability_logging_pattern",
"configuration.properties.property[1].value": "%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ},severity=%p,thread=%t,logger=%c,%X,%m%n"
}
}
]
}
如您所见,属性被包装到 Spring Environment 对象中,属性被推送到 Map 中,因此将其剥离并让 log4j2 解析它会很棘手。
有没有人让 log4j 客户端与非 git 后端一起工作?

最佳答案

你是对的。 Log4j 对 Spring Cloud Config 的支持依赖于 SCC 对提供纯文本文件的支持。
最新 Spring Cloud 配置 documentation表示通过 urls 的纯文本支持仅适用于 Git、SVN、 native 和 AWS S3,但要使 S3 工作 Spring Cloud AWS 必须包含在 Config Server 中。这个issue表示对从 S3 提供纯文本文件的支持似乎已添加到 Spring Cloud Config 2.2.1.Release 中,该版本于 2019 年 12 月发布。仍有一个开放的 issue添加对保险库后端的支持。
Log4j 对 SCC 的支持是在 2019 年 6 月的 2.12.0 版本中添加的,当时 SCC 尚不支持 AWS S3。我只使用本地单元/功能测试和 Git 对其进行了测试,因为这是我雇主使用的后端。但是,根据文档,如果您可以让 SCC 使用 AWS 后端提供纯文本,那么 Log4j 应该可以正常工作,就像它通过 URL 查询 SCC 一样。

关于spring-cloud - 当 Spring Cloud Config 使用 Git 或 File Based 以外的后端时,无法使用 log4j-spring-cloud-config-client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67078471/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com