gpt4 book ai didi

使用 log4j 和 log4j.yaml 进行 java 日志记录

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:57:53 25 4
gpt4 key购买 nike

看起来 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

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>
...

最佳答案

问题似乎是“为什么人们使用 XML 配置而不是 YAML 配置?”

正如@Stephen C 所暗示的那样,答案是历史。 Log4j 2 于 2014 年发布,added YAML and JSON configuration format支持。这意味着从 2001 年到 2014 年,您对 log4j 配置文件的选择是 XML 或属性文件(通过属性文件进行的配置已在 log4j 2 中删除)。

关于使用 log4j 和 log4j.yaml 进行 java 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550377/

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