Java SLF4J + Logback 不登录 WildFly

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/23079492/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 20:31:35  来源:igfitidea点击:

SLF4J + Logback does not log in WildFly

javalogbackwildfly

提问by Leos Literak

I run web application in WildFly 8 and for some reason it does not log. I use SLF4J with LOGBACK. The log file is created on deploy but it is empty. I do not see my log statements in wildfly logs either.

我在 WildFly 8 中运行 Web 应用程序,但由于某种原因它没有记录。我将 SLF4J 与 LOGBACK 一起使用。日志文件是在部署时创建的,但它是空的。我也没有在 Wildfly 日志中看到我的日志语句。

The class contains:

该类包含:

package com.blah.oops;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

static final Logger log = LoggerFactory.getLogger(EndpointImpl.class);

log.debug("request called");

War contains:

战争包含:

  • WEB-INF\lib\slf4j-api-1.7.5.jar
  • WEB-INF\lib\logback-classic-1.1.1.jar
  • WEB-INF\lib\logback-core-1.1.1.jar
  • WEB-INF\classes\logback.xml
  • WEB-INF\lib\slf4j-api-1.7.5.jar
  • WEB-INF\lib\logback-classic-1.1.1.jar
  • WEB-INF\lib\logback-core-1.1.1.jar
  • WEB-INF\classes\logback.xml

Configuration file logback.xml contains:

配置文件 logback.xml 包含:

<configuration scan="true" scanPeriod="10 seconds">
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_PATH}/backend-main.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} %msg%n</pattern>
        </encoder>
    </appender>

    <!-- PROFILER configuration -->
    <turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
        <Marker>PROFILER</Marker>
        <OnMatch>ACCEPT</OnMatch>
        <!--  <OnMatch>DENY</OnMatch> -->
    </turboFilter>

    <logger name="org.eclipse.jetty.util.log" level="info"/>
    <logger name="com.blah" level="debug"/>
    <logger name="org.apache.cxf" level="warn"/>

    <root level="info">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

console.log contains logback initialization:

console.log 包含 logback 初始化:

.[0m.[0m10:19:52,716 INFO  [stdout] (MSC service thread 1-2) 10:19:52,489 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
.[0m.[0m10:19:52,717 INFO  [stdout] (MSC service thread 1-2) 10:19:52,489 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
.[0m.[0m10:19:52,717 INFO  [stdout] (MSC service thread 1-2) 10:19:52,490 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [vfs:/content/backend.war/WEB-INF/classes/logback.xml]
.[0m.[0m10:19:52,717 INFO  [stdout] (MSC service thread 1-2) 10:19:52,501 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@666dc663 - URL [vfs:/content/backend.war/WEB-INF/classes/logback.xml] is not of type file
.[0m.[0m10:19:52,717 INFO  [stdout] (MSC service thread 1-2) 10:19:52,524 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
.[0m.[0m10:19:52,717 INFO  [stdout] (MSC service thread 1-2) 10:19:52,529 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeFilter scanning period to 10 seconds
.[0m.[0m10:19:52,718 INFO  [stdout] (MSC service thread 1-2) 10:19:52,529 |-INFO in ReconfigureOnChangeFilter{invocationCounter=0} - Will scan for changes in [[]] every 10 seconds.
.[0m.[0m10:19:52,718 INFO  [stdout] (MSC service thread 1-2) 10:19:52,529 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Adding ReconfigureOnChangeFilter as a turbo filter
.[0m.[0m10:19:52,718 INFO  [stdout] (MSC service thread 1-2) 10:19:52,532 |-ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [acquirer.properties].
.[0m.[0m10:19:52,718 INFO  [stdout] (MSC service thread 1-2) 10:19:52,532 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
.[0m.[0m10:19:52,718 INFO  [stdout] (MSC service thread 1-2) 10:19:52,535 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [jettyConsole]
.[0m.[0m10:19:52,718 INFO  [stdout] (MSC service thread 1-2) 10:19:52,572 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender]
.[0m.[0m10:19:52,719 INFO  [stdout] (MSC service thread 1-2) 10:19:52,573 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
.[0m.[0m10:19:52,719 INFO  [stdout] (MSC service thread 1-2) 10:19:52,575 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
.[0m.[0m10:19:52,719 INFO  [stdout] (MSC service thread 1-2) 10:19:52,576 |-INFO in ch.qos.logback.core.FileAppender[FILE] - File property is set to [/var/log/blah/backend-main.log]
.[0m.[0m10:19:52,719 INFO  [stdout] (MSC service thread 1-2) 10:19:52,591 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse.jetty.util.log] to INFO
.[0m.[0m10:19:52,719 INFO  [stdout] (MSC service thread 1-2) 10:19:52,592 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.blah] to DEBUG
.[0m.[0m10:19:52,719 INFO  [stdout] (MSC service thread 1-2) 10:19:52,592 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.cxf] to WARN
.[0m.[0m10:19:52,720 INFO  [stdout] (MSC service thread 1-2) 10:19:52,592 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO
.[0m.[0m10:19:52,720 INFO  [stdout] (MSC service thread 1-2) 10:19:52,713 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
.[0m.[0m10:19:52,720 INFO  [stdout] (MSC service thread 1-2) 10:19:52,713 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
.[0m.[0m10:19:52,720 INFO  [stdout] (MSC service thread 1-2) 10:19:52,714 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@30fbc21e - Registering current configuration as safe fallback point

It seems to me that LOGBACK is successfully configured. But log messages are lost. Any idea what is going there? It makes me no sense.

在我看来,LOGBACK 配置成功。但是日志消息丢失了。知道那里会发生什么吗?这让我毫无意义。

采纳答案by tmarwen

WildFly adds slf4j as a default logging dependency Have you tried excluding the main implementation in jboss-deployment-structure.xmldescriptor (It should go under the META-INF directory). This can be done with below lines:

WildFly 添加 slf4j 作为默认日志依赖项,您是否尝试过排除jboss-deployment-structure.xml描述符中的主要实现(它应该位于 META-INF 目录下)。这可以通过以下几行来完成:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <exclusions>
      <module name="org.apache.commons.logging" />
      <module name="org.apache.log4j" />
      <module name="org.jboss.logging" />
      <module name="org.jboss.logging.jul-to-slf4j-stub" />
      <module name="org.jboss.logmanager" />
      <module name="org.jboss.logmanager.log4j" />
      <module name="org.slf4j" />
      <module name="org.slf4j.impl" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>

回答by Rajiv525

Wildfly is using slf4j as defult logging. you have to tell jboss not to use slf4j, i am using log4j. you can do this using below jboss-deployment-structure.xml

Wildfly 使用 slf4j 作为默认日志记录。你必须告诉 jboss 不要使用 slf4j,我正在使用 log4j。您可以使用以下 jboss-deployment-structure.xml 执行此操作

<jboss-deployment-structure>
  <deployment>
     <!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment -->
     <!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
     <exclude-subsystems>
        <subsystem name="logging" />
    </exclude-subsystems>
  </deployment>
</jboss-deployment-structure>