And*_*iuc 8 java logging yaml log4j
看起来java开发人员正在避免使用log4j.yaml进行日志记录,而是希望使用log4j.xml
我知道在log4j v2中有这方面的支持,但不明白为什么在互联网上没有与此相关的详细文档?
我找到了很多文档python/ruby logging和yaml.我知道java是旧语言,但不明白为什么java开发人员对新事物不感兴趣.
更新:
发现怎么办,很难;)
log4j2.yml或log4j2-test.yml
# why yaml http://jessenoller.com/blog/2009/04/13/yaml-aint-markup-language-completely-different
status: WARN
monitorInterval: 900 # 15 min = 900 sec
properties:
property:
-
name: pattern_layout_console
value: "%d - [%t] %-5p - %c - %M(%L) | %m%n"
-
name: pattern_layout_console_no_threads
value: "%d - %-5p - %c - %M(%L) | %m%n"
-
name: log_path
value: "./logs"
appenders:
console:
-
name: CONSOLE
PatternLayout:
pattern: "${pattern_layout_console_no_threads}"
file:
-
name: DEBUG_FILE
fileName: ${log_path}/debug.log
PatternLayout:
pattern: "${pattern_layout_console}"
append: false
-
name: INFO_FILE
fileName: ${log_path}/info.log
PatternLayout:
pattern: "${pattern_layout_console_no_threads}"
append: false
######## .....
loggers:
logger:
-
name: ch.company.module
additivity: false
appenderRef:
-
ref: DEBUG_FILE
level: DEBUG
-
ref: INFO_FILE
level: INFO
-
ref: WARN_FILE
level: WARN
-
ref: ERROR_FILE
level: ERROR
root:
level: INFO
appenderRef:
ref: CONSOLE
Run Code Online (Sandbox Code Playgroud)
的pom.xml
....
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.1</version>
</dependency>
...
Run Code Online (Sandbox Code Playgroud)
问题似乎是“为什么人们使用 XML 配置而不是 YAML 配置?”
正如 @Stephen C 所暗示的答案是历史。Log4j 2 于 2014 年发布,添加了 YAML 和 JSON 配置格式支持。这意味着从 2001 年到 2014 年,log4j 配置文件的选项要么是 XML,要么是属性文件(在 log4j 2 中删除了通过属性文件进行的配置)。