gpt4 book ai didi

yaml - 在 Log4J2 YAML 中使用属性

转载 作者:行者123 更新时间:2023-12-04 23:41:30 24 4
gpt4 key购买 nike

我正在尝试在 log4j2.yaml 中使用属性。等效的 XML 是这样的。

<Configuration>
<Properties>
<Property name="log-path">logs</Property>
<Property name="archive">${log-path}/archive</Property>
</Properties>
<Appenders>
. . .

我试过这个。
Configutation:
name: Default
properties:
property:
name: log-path
value: "logs"
name: archive
value: ${log-path}/archive
Appenders:

但是这些属性并没有被选中。例如,以下代码创建一个 ${日志路径} 用于存储日志文件而不是所需的文件夹 日志文件夹。
fileName: ${log-path}/rollingfile.log

我究竟做错了什么?

最佳答案

如果您查看 log4j2.json 文件,您可以看到 property key 必须有一个值,它是(再次)键值对列表。转换为 YAML,这看起来像这个文件的开头:

configuration:
name: Default
properties:
property:
- name: log-path
value: logs
- name: archive
value: ${log-path}/archive
appenders:
Console:
PatternLayout:
pattern: '[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n'
name: Console-Appender
target: SYSTEM_OUT
File:
PatternLayout:
pattern: '[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n'
fileName: ${log-path}/logfile.log
name: File-Appender
RollingFile:
DefaultRolloverStrategy:
max: '30'
PatternLayout:
pattern: '[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n'
Policies:
SizeBasedTriggeringPolicy:
size: 1 KB
fileName: ${log-path}/rollingfile.log
filePattern: ${archive}/rollingfile.log.%d{yyyy-MM-dd-hh-mm}.gz
name: RollingFile-Appender
loggers:
logger:
additivity: 'false'
appender-ref:
- level: info
ref: Console-Appender
- level: error
ref: File-Appender
- level: debug
ref: RollingFile-Appender
level: debug
name: guru.springframework.blog.log4j2json
root:
appender-ref:
ref: Console-Appender
level: debug

(以上是使用 yaml from-json log4j2.json 转换的,命令是从 ruamel.yaml.cmd 安装的

当然可以保证这是有效的,因为有多种方法可以将 XML 层次结构转换为 YAML。但是 YAML 和 JSON 的解析不太可能不同。
${}的扩展必须在加载 YAML 文件后通过遍历数据结构来完成,并且不太可能通过以不区分大小写的方式匹配原始映射键来完成。

关于yaml - 在 Log4J2 YAML 中使用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36076316/

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