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:
- 在
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
- 在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
相关产品推荐
相关产品推荐

