【发布时间】:2021-12-23 10:37:54
【问题描述】:
我正在尝试为在 Wildfly 上运行的 REST 服务配置日志记录。我在资源中有一条简单的 GET 请愿日志消息:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-----
log.info("Inicia petición GET para la fecha {}", fecha_str);
但在 Wildfly 控制台中我得到:
10:24:33,826 INFO [es.bocm.numbot.rest.numbot.NumbotResource] (default task-1) Inicia petici?n GET para la fecha 1923-05-10
在本地运行单元测试时,我得到了正确的编码,所以我认为我的项目设置没有问题。这些是我的 pom.xml 中的相关部分:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
----------
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.32</version>
<scope>provided</scope>
</dependency>
这是我添加到standalone.xml中的:
<logger category="es.bocm.numbot">
<level name="DEBUG"/>
</logger>
我尝试添加:
<encoding value="UTF-8"/>
到默认定义的控制台处理程序:
<subsystem xmlns="urn:jboss:domain:logging:8.0">
但看起来这会让事情变得更糟:
10:32:04,488 INFO [es.bocm.numbot.rest.numbot.NumbotResource] (default task-1) Inicia petición GET para la fecha 1923-05-10
我在 Wildfly 启动过程中注意到的唯一奇怪的事情是:
Handler java.util.logging.ConsoleHandler is not defined
它甚至没有时间戳和其余数据,它只是这条消息。
【问题讨论】:
-
您可能想尝试删除
org.slf4j:slf4j-simple。 SLF4J 默认绑定到 jboss-logmanager,这也可能是您看到有关控制台处理程序的消息的原因。 -
同样的结果。我添加了在本地运行 maven 测试时修复此错误:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.