You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ中通过Maven引入JBoss Logging日志输出至System.error问题

解决JBoss Logging在IntelliJ中日志显示为红色的问题

我之前也碰到过一模一样的情况——JBoss Logging作为日志门面,默认配置下可能会把所有日志输出绑定到System.err,而IntelliJ会统一把System.err的内容标为红色,哪怕是Info级别的正常日志。下面给你几个可行的解决思路:

方法一:直接调整IntelliJ控制台颜色规则

不用修改日志输出流,让IntelliJ正确识别日志级别对应的显示颜色:

  • 打开IntelliJ设置(快捷键Ctrl+Alt+S,或顶部菜单File > Settings)
  • 导航到Editor > Color Scheme > Console Colors
  • 在右侧面板的Console Output分组里:
    • 若只是想让System.err的输出不再全红,可以修改Error Output的颜色(但这种方式会把真正的错误日志颜色也改掉,不太推荐)
    • 更精准的操作是配置Log Categories:点击右上角的+,添加你项目的日志包名/类名,然后给INFO级别设置你想要的颜色,IntelliJ会自动识别日志输出中的级别标识并应用对应颜色

方法二:配置日志框架让输出流向System.out

JBoss Logging是门面框架,底层默认使用JDK自带的JUL(java.util.logging),你可以通过配置文件把控制台输出切换到System.out:

  1. 在src/main/resources下创建logging.properties文件,内容如下:
# 配置控制台Handler
handlers=java.util.logging.ConsoleHandler
# 全局日志级别
.level=INFO

# 控制台Handler配置
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
# 指定输出流为System.out
java.util.logging.ConsoleHandler.stream=System.out
  1. 在IntelliJ的运行配置中,添加VM参数:-Djava.util.logging.config.file=src/main/resources/logging.properties

如果你的项目底层用的是Log4j2或SLF4J+Logback,可对应修改它们的配置文件:

  • 比如Log4j2的log4j2.xml里,把ConsoleAppender的target设为SYSTEM_OUT:
<Console name="Console" target="SYSTEM_OUT">
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>

方法三:确认Logger的使用是否正确

先检查你的Logger初始化和日志打印代码有没有误用级别:

  • 正确的JBoss Logging初始化方式是:
import org.jboss.logging.Logger;

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

    public void someMethod() {
        logger.info("这是Info级别的日志");
    }
}

确保没有不小心调用logger.error()或其他错误级别的方法,导致输出被定向到System.err。

内容的提问来源于stack exchange,提问作者Skillzore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:15:00