有人有 SLF4J/logback 来与 JBoss 7 一起工作吗?
以前,通过将我的“logback.groovy”放入 [server]/conf 以及 logback 核心、经典 (0.9.28) 和 Groovy (1.8.0),我能够让我的应用程序在 JBoss 5.1 中运行) [server]/lib 中的 JAR。
对于 JBoss 7.0.1,我已经正确设置了 Groovy 和 logback 模块(已经创建了 .index 文件),我的 EAR 的 MANIFEST.MF 声明了对这两个模块的依赖关系,我的“logback.groovy”是在我的 EAR 中部署在我的 WAR 模块的 WEB-INF/类中。 EAR 肯定部署正常 - 灯是绿色的......
尽管如此,实际应用的唯一日志记录规则是在“standalone.xml”中设置的标准 console/server.log。是的,我可以看到我的日志语句(所以 SLF4J 正在工作),但是我的 logback 规则、附加程序等都被忽略了。在任何日志记录中都没有对 logback 或 Groovy 的引用,所以我假设我没有做足够的事情来触发 logback 的加载和查找我的脚本。
我还可以尝试其他方法,但最好知道其他人是否已经尝试过。如果他们没有,也许这表明我应该投入 JBoss 日志记录?
最佳答案
您确定 logback 处于 Activity 状态吗?如果 logback 找不到配置文件,即 logback.groovy 或 logback.xml,它将在控制台上打印一条警告消息。输出应类似于:
12:49:22,078 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.
你在控制台上看到任何这样的输出吗?如果没有,假设 Jboss 7 与 slf4j 绑定(bind)捆绑在一起,您可能已经在使用 Jboss 日志记录。 (您对 slf4j api 的调用被发送到 jboss 日志而不是 logback。)
应该联系 Jboss 人员关于使用 jboss-logging 以外的日志后端。
再深入一点,我注意到 JAS7 附带了一个名为 slf4j-jboss-logmanager-1.0.0.GA.jar 的文件,位于 ./modules/org/slf4j/impl/main/ 文件夹。这个文件的内容表明它肯定是一个 slf4j 绑定(bind)。我不知道 Jboss“模块”是如何工作的,但是如果您希望 slf4j 获取 logback-classic,则删除/禁用 slf4j-jboss-logmanager 是可行的方法。
关于java - SLF4J + logback + JBoss 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499014/