If you look at the log4j2.json file, you will see that the key propertymust have a value that is a list of (again) key-value pairs. Translated to YAML, this is similar to the beginning of this file:
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
(the above was converted using yaml from-json log4j2.json, the command was installed from ruamel.yaml.cmd
, , , XML YAML. , YAML JSON .
${} YAML, , , .