我有一个springbootweb应用程序,需要在slf4j后面使用javautil日志记录。当我不创建 logging.properties
文件,控制台记录器工作正常,所有信息和以上消息都被记录。当我创建一个 logging.properties
文件,只记录致命错误。不管发生什么事 logging.properties
文件包含-我尝试了很多不同的配置-它只记录致命错误时,这个文件存在。
这是我导入的jar(使用gradle)
implementation("org.slf4j:slf4j-api")
implementation("org.slf4j:slf4j-jdk14")
我还必须确保没有导入logback classic,因为我的一个依赖项正在尝试将其拉入。
configurations.all {
exclude(group = "ch.qos.logback", module = "logback-classic")
}
那么,这是我的 logging.properties
文件。它位于 src/main/resources/logging.properties
.
handlers = java.util.logging.ConsoleHandler
.level= ALL
java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
这不是我尝试使用的唯一配置。
有人能看出我做错了什么吗?为什么它只记录致命错误?
3条答案
按热度按时间yvt65v4c1#
你的
java.util.logging.config.file
系统属性指向可读文件?如果我运行这个指向不存在的文件的测试程序,我会得到以下结果:
这个
false
在输出中,我在配置中指定的文件是不可读的(因为该位置不存在)。根记录器处理程序为空,因为日志管理器无法读取my logging.properties。从终端可以看到文件不存在于该路径:
在相关答案中,您可以遵循其他调试提示。
您的脚本告诉我“未指定配置”。在使用gradle构建springboot应用程序的上下文中,我在哪里指定它?
我可以在spring引导配置文件中定义系统属性吗?介绍如何在SpringBoot中设置系统属性。如何通过gradle为我的测试提供系统属性,-d包括如何通过gradle传递属性。
如果这对您不起作用,那么您需要指定一个
PostConstruct
方法来定位日志配置文件并配置logmanager。4ktjp1zp2#
我刚从jul切换到log4j2,因为我更了解这个文档。
hl0ma9xz3#
这适用于您现有的logging.properties文件。
我想问题是
java.util.logging
不查找属性资源,只查找文件(或默认资源)。我无法解释为什么在存在logging.properties资源时看到不同的行为。