gpt4 book ai didi

java - Log4j2 设置日志级别

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:21:49 30 4
gpt4 key购买 nike

我在我的 spring 应用程序中使用 log4j2 作为我的日志记录实用程序。我想将特定库/包的日志级别设置为与根目录不同的级别。例如,我希望 org.springframework 为 INFO,而 com.google 为 WARN。我在 log4j2.properties 中找到了这个:

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
logger.rolling.name = com.test.app
logger.rolling.level = ALL
logger.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = info

我不明白logger.rolling 是什么意思?我一直在 log4j2 文档中找到它,但没有解释它是什么或 ALL 的含义。

如何为特定包添加日志级别以及滚动级别是什么东西?

最佳答案

Level intLevel
OFF 0
FATAL 100
ERROR 200
WARN 300
INFO 400
DEBUG 500
TRACE 600
ALL Integer.MAX_VALUE

https://logging.apache.org/log4j/2.x/manual/customloglevels.html

log4j 记录器将记录所有低于其阈值的事件,因此如果设置为 ALL,它将记录每个事件,因为它使用最大值作为其阈值。

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile

这是定义一个名为 RollingFile 的新滚动文件附加程序。滚动文件附加器是一种附加器,例如,它可以增长到固定大小,然后在删除最旧的条目的同时继续添加新条目。它们也可以是基于时间的等等。

logger.rolling.name = com.test.app
logger.rolling.level = ALL
logger.rolling.appenderRef.rolling.ref = RollingFile

这告诉 log4j 将任何事件从名为 com.test.app 的记录器发送到上述 RollingFile appender。 log4j 不会过滤掉任何事件,因为此记录器的级别设置为 ALL。 “logger.rolling”中的“rolling”只是记录器的标识符。这是必要的,因为属性文件是非结构化的,因此您需要一种方法来区分哪些行放在一起。使用 XML 配置消除了这种需要

rootLogger.level = info

任何由其他记录器创建的未在属性中定义的事件都将被过滤,并且仅记录 INFO 或以下信息。

文档在这里:https://logging.apache.org/log4j/2.x/manual/configuration.html#Properties

要回答您的问题,这取决于如何在应用程序中创建记录器。记录器实际上是在 java 中创建的,这就是它们的名称被分配的地方。属性文件仅指示 log4j 如何处理每个记录器。您需要使用类中定义的名称将记录器添加到属性文件。如果类本身用于创建记录器,如 apache 所建议的,那么名称将始终是类的完全限定名称。例如:

 logger.secondclass.name = com.test.AnotherClass
logger.secondclass.level = DEBUG
logger.secondclass.appenderRef.rolling.ref = RollingFile

现在由 com.test.AnotherClass 创建的任何 DEBUG 或以下事件也将被发送到 RollingFile appender。

所有这些都在这里解释:https://logging.apache.org/log4j/2.x/manual/architecture.html

关于java - Log4j2 设置日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43768522/

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