首页 文章

SFL4J和JDK日志记录之间的不同日志记录级别

提问于
浏览
13

我使用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 回答

  • 8

    我已经在轰鸣声帖子的帮助下解决了这个问题 .

    slf4j logging with jdk – how to enable debug?

    对于SLF4J中的DEBUG级别日志记录,我们必须在java.util.logging中映射FINE级别 .

    我们必须将默认日志记录级别设置为FINE或更低级别的FINE . 这可以通过将波纹管线放在日志记录配置文件中来实现 .

    .level =精细

  • 0

    您遇到的另一个问题是,虽然您已经定义了处理程序,但您尚未将其分配给任何记录程序 .

    要将其分配给根 Logger ,请使用

    .handlers=com.amc.logging.handlers.DebugLogHandler
    

    要将其分配给应用程序中的 Logger ,请定义 Logger

    com.company.application.package.level=FINE
    

    并将您的处理程序分配给它: com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler

    另外,com.amc.logging.handlers.DebugLogHandler是你自己定义的一个类吗?它在你的类路径中吗?因为否则我认为java.util.logging(JUL)不会识别它 .

    尝试使用JUL附带的处理程序之一:

    handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler
    

    并使用所需的级别,日志位置和格式配置它们 .

    这是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

相关问题