繁体   English   中英

SLF4J在信息级别记录错误消息

[英]SLF4J logs error messages at info level

我遇到了一个奇怪的问题。 我有一个曾经使用过Log4j的类,我可以这样做:

LOGGER.log(Level.SEVERE, "This is a message");

我会得到这样的输出:

严重:这是一条消息

我用SLF4J记录器替换它以与应用程序的其余部分保持一致:

LOGGER.error("This is a message.");

但现在它在INFO级别登录:

INFO:2012-01-23 16:50:43,306 [http-thread-pool-8080(3)]错误com.mycompany.MyClass - 这是一条消息

我原以为这会被记录在ERROR级别(SLF4J似乎没有任何级别)。

知道发生了什么事吗? 这是默认的吗? 该应用程序相当复杂,所以如果在某个地方改变它我不会感到惊讶,但我会在哪里找到它来改变它?

我正在使用Glassfish,以防可能相关。

您需要使SLF4J使用Java Util Logging后端。 这就是Glassfish内部使用的。 由于它没有使用它,它正在转储到控制台,GF将控制台上的所有内容报告为INFO。

所以挂上JUL适配器,你应该都很好。

没有配置列表记录它只是一个猜测。 但我认为日志框架可能配置错误。 slf4j登录ERROR级别:

ERROR com.mycompany.MyClass - This is a message

然后将此输出发送到控制台,该控制台由glassfish重定向到INFO级别的常规日志文件。

以前的设置可能使用glassfish日志记录直接继承其配置。 切换到slf4j后没有找到配置,所以一切都发送到控制台,然后发送到server.log

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM