gpt4 book ai didi

java - 为什么 apache.commons.logging.Log 不会记录调试级别?

转载 作者:行者123 更新时间:2023-11-30 08:37:13 24 4
gpt4 key购买 nike

我有一个 J2SE 桌面应用程序,我正在尝试了解如何使用 apache commons 日志记录。我的项目中有以下属性文件,使用最新的 apache 公共(public)日志记录:

commons-logging.properties:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

#Priorities are: DEBUG, INFO, WARN, ERROR, or FATAL.
log4j.rootCategory=DEBUG
log4j.appender.appender.Threshold=DEBUG

log4j.properties:

log4j.rootLogger=TRACE

日志记录属性:

# jdk handlers
handlers=java.util.logging.ConsoleHandler java.util.logging.FileHandler

# default log level FINE=ERROR FINER= FINEST=
.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST

# log file name for the FileHandler
java.util.logging.FileHandler.pattern=gef_debug.log

而且,即使所有设置为 FINEST 或 TRACE,我仍然只在控制台上记录信息和错误。

知道这里出了什么问题吗?

--

顺便说一句,我在一个现有的旧项目中,所以也许在某个地方有一些我不知道的配置,这阻止了我的日志...:/但仅限于 DEBUG 级别。

最佳答案

org.apache.commons.logging.Log= org.apache.commons.logging.impl.Jdk14Logger

我认为这一行意味着您使用的是 Jdk14Logger,而不是 Log4j

Jdk14Logger 读取文件log-config.properties。只需在应用程序类路径中创建它并进行设置。例如:

# The following creates the console handler
handlers=java.util.logging.ConsoleHandler
# Set the default logging level for the root logger
.level=FINEST
# Set the default logging level
java.util.logging.ConsoleHandler.level=ALL

# Set the default formatter
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

您还可以通过将 commons-logging.properties 的第一行更改为 org.apache.commons.logging.Log=org.apache.commons 来将记录器更改为 Log4j。 logging.impl.Log4JLogger

通过这样做,您将使用从 log4j.properties 读取的 Log4J 记录器,因此您需要向其添加控制台处理程序。

您可以查看几个日志实现 here .

关于java - 为什么 apache.commons.logging.Log 不会记录调试级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37379023/

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