我使用JDK日志记录作为日志框架,SLF4J作为简单的外观 . 当我记录不同级别的日志时,我有一些疑问 .
SLF4J has following log levels
痕迹(最不严重)
调试
信息
警告
错误
致命的(最严重的)
JDK logging has following log levels
严重(最高 Value )
警告
信息
CONFIG
精细
FINER
最好的(最低 Value )
如果我想将日志级别设置为DEBUG,那么在JDK日志记录中该级别不可用 . 任何人都可以解释一下我们如何在这种情况下获得DEBUG级别的日志记录 . 我们是否需要针对这种情况进行任何其他配置?
Updated
这是我的属性文件配置
handlers = com.amc.logging.handlers.DebugLogHandler
com.amc.logging.handlers.DebugLogHandler.pattern = c:/logs/debug_log.log com.amc.logging.handlers.DebugLogHandler.level = FINE com.amc.logging.handlers.DebugLogHandler.formatter = java.util.logging .SimpleFormatter com.amc.logging.handlers.DebugLogHandler.append = true
请让我知道我哪里出错了 .
2 回答
我已经在轰鸣声帖子的帮助下解决了这个问题 .
slf4j logging with jdk – how to enable debug?
对于SLF4J中的DEBUG级别日志记录,我们必须在java.util.logging中映射FINE级别 .
我们必须将默认日志记录级别设置为FINE或更低级别的FINE . 这可以通过将波纹管线放在日志记录配置文件中来实现 .
.level =精细
您遇到的另一个问题是,虽然您已经定义了处理程序,但您尚未将其分配给任何记录程序 .
要将其分配给根 Logger ,请使用
要将其分配给应用程序中的 Logger ,请定义 Logger
并将您的处理程序分配给它:
com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler
另外,com.amc.logging.handlers.DebugLogHandler是你自己定义的一个类吗?它在你的类路径中吗?因为否则我认为java.util.logging(JUL)不会识别它 .
尝试使用JUL附带的处理程序之一:
并使用所需的级别,日志位置和格式配置它们 .
这是logging.properties文件的示例:https://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_java.util.logging_(default)
它使用来自apache的juli实现的处理程序,但只是用JUL中的类替换:https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html