我有一个J2SE桌面应用程序,我试图了解如何使用apache commons日志记录。我的项目中有以下属性文件,使用最新的apache commons logging:
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
logging.properties:
# 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级别。答案 0 :(得分:1)
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.logging.impl.Log4JLogger
来将记录器更改为Log4j。
通过这样做,您将使用从 log4j.properties 读取的Log4J记录器,因此您需要向其添加控制台处理程序。
您可以查看几个日志实现here。