slf4j logback 替代Logger

标签 slf4j logback

我无法再使用 gradle 任务 `jettyRuǹ 启动我的记录器。多个绑定(bind)的第一个问题不是问题。但是现在(我猜在升级到 gradle 1.4 之后)我的记录器没有启动。 slf4j 文档说以编程方式重置上下文,但我更愿意通过配置来完成,因为 jettyRun 仅用于开发。

$ gradle jettyRun
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jettyRun
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/gradle-1.4/lib/logback-classic-1.0.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/bertrand/.gradle/caches/artifacts-23/filestore/ch.qos.logback/logback-classic/1.0.9/jar/258c3d8f956e7c8723f13fdea6b81e3d74201f68/logback-classic-1.0.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
SLF4J: The following loggers will not work because they were created
SLF4J: during the default configuration phase of the underlying logging system.
SLF4J: See also http://www.slf4j.org/codes.html#substituteLogger
SLF4J: org.yajug.users.api.MembershipController
SLF4J: org.yajug.users.json.Serializer
SLF4J: org.yajug.users.api.MemberController
SLF4J: org.yajug.users.service.MemberServiceImpl
SLF4J: org.yajug.users.persistence.MongoConnector

最佳答案

最后我发现了问题所在:

  • 记录上下文在第一次调用记录器时被延迟初始化。
  • 在我的 Web 应用程序(仅执行异步调用的单页 Web 应用程序)的上下文中,第一页调用了 2 个异步请求
  • 每个请求都有一个记录器并且初始化是同时进行的,这就是为什么我的一些记录器实现被 nop impl 取代的原因。
  • 通过在应用启动时添加记录器调用,上下文被正确初始化
  • 关于slf4j logback 替代Logger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16000514/

    相关文章:

    Spring Boot 日志记录模式

    java - 制作一个记录器以跳过 logback 中的根部分

    java - Logback-Slf4j 从 IDe 运行时将日志消息写入文件,但不是作为 jar

    java - 在 SLF4J 中格式化 float

    java - 格式化 java 在 JSON 中注销以在 ELK Stack 中使用

    java - 如何防止logback/slf4j解析换行符

    java - if condition in logback - 在两个不同的文件夹中打印日志消息

    java - spring boot logback-spring.xml maxFileSize 不适用于 SizeAndTimeBasedRollingPolicy

    groovy - Spring Boot + Groovy + logback.groovy

    java - 在 Eclipse 中为 slf4j/log4j 输出着色