【问题标题】:Wildfly 8.1 not finding logback.xml - uses default configWildfly 8.1 找不到 logback.xml - 使用默认配置
【发布时间】:2015-01-15 02:31:41
【问题描述】:

我目前正在为一个学校项目开发一个网站,但遇到了有关日志记录的问题。我想使用 logback 记录我的东西。但是,我的 Wildfly 服务器无法识别我的 logback 配置文件 (logback.xml)。

Logback.xml放在

src/main/resources/logback.xml

我的 logback.xml 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
    <file>myLogFile.log</file>
    <append>true</append>
    <encoder>
        <pattern>%d [%thread] %-5level  %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

<root level="TRACE">
    <appender-ref ref="fileAppender" />
</root>
</configuration>

我的 pom.xml 看起来像这样:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.6.6</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.0.7</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.0.7</version>
</dependency>

写日志时我这样做:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyClass {
  private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

  public void someMethod(){
    logger.debug("Dummy debug message.");
    logger.info("Dummmy info message.");
    logger.warn("Dummy warning message.");
    logger.error("Dummy error message.");
  }
}

你应该会认为你会得到一个输入类似于这样的文件:

2014-11-18 02:10:13,295 [main] DEBUG  com.example.package.ClassName - Dummy debug message.
2014-11-18 02:10:13,295 [main] INFO   com.example.package.ClassName - Dummy info message.
2014-11-18 02:10:13,296 [main] WARN   com.example.package.ClassName - Dummy warning message.
2014-11-18 02:10:13,296 [main] ERROR  com.example.package.ClassName - Dummy error message.

我没有。相反,我在终端中得到以下信息:

[0m02:22:49,489 INFO  [com.example.package.MyClass] (default task-4) Dummy info message.
[0m[33m02:22:49,489 WARN  [com.example.package.MyClass] (default task-4) Dummy warning message.
[0m[31m02:22:49,490 ERROR [com.example.package.MyClass] (default task-4) Dummy error message.

这也存储在以下位置的服务器日志中:

/wildfly-8.1.0.Final/standalone/log/server.log

我还确定我的 logback.xml 包含在类路径中。它在这里找到:

/target/classes/logback.xml

在我的服务器上创建和部署一个 .war 之后,应该期望我的配置文件用于 logback;但事实并非如此。而是它正在使用的默认 wildfly-logger-format(或默认 logback?无论哪种方式;不是我的配置),并且没有创建文件。

我什至可以删除我的 logback.xml,实际上没有区别。我一生都无法弄清楚这里出了什么问题。为什么wildfly不使用类路径中指定的logback.xml?任何帮助将不胜感激!

【问题讨论】:

    标签: jakarta-ee jboss logback wildfly wildfly-8


    【解决方案1】:

    您需要exclude 服务器日志依赖项或删除jboss-deployment-structure.xml 中的日志子系统。

    问题是 slf4j 将寻找一个绑定,可能会找到服务器提供的与 jboss-logmanager 的绑定。您需要确保服务器提供的 slf4j 日志记录依赖项未添加到您的部署中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多