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

WSO2 APIM 4.0.0中Jar包System.out.println日志未输出至Carbon日志的咨询

解决WSO2 APIM 4.0.0中Jar包System.out.println日志输出失效问题

APIM 4.0.0对日志组件做了更新,导致之前可行的System.out.println输出到Carbon日志的逻辑失效,以下是无需改用LogFactory的恢复方案:

1. 修正Log4j2配置文件

打开<APIM_HOME>/repository/conf/log4j2.properties,做以下检查和修改:

确认Console Appender配置

确保存在捕获System.out的Console Appender,缺失则手动添加:

appender.console.type = Console
appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d] %5p {%c} - %m%n

添加Stdout专属Logger

增加针对stdout的Logger配置,绑定到上述STDOUT Appender:

logger.stdout.name = stdout
logger.stdout.level = INFO
logger.stdout.additivity = false
logger.stdout.appenderRef.STDOUT.ref = STDOUT

检查Root Logger关联

确认Root Logger的appenderRef包含STDOUT,保证控制台输出能写入Carbon日志文件:

rootLogger.level = INFO
rootLogger.appenderRef.console.ref = STDOUT
rootLogger.appenderRef.file.ref = CARBON_LOGFILE

2. 保留启动脚本的默认重定向逻辑

不要修改<APIM_HOME>/bin/wso2server.sh(Linux)或wso2server.bat(Windows)里的System.out/err重定向代码。WSO2默认会自动将控制台输出转写到Carbon日志,改动脚本会打断该逻辑。

3. 调整Jar包部署目录

若Jar包当前放在repository/components/lib,可尝试移至repository/components/dropins,反之亦然。类加载顺序变化可能导致System.out输出被拦截,更换目录可规避类加载冲突问题。

4. 匹配日志级别

如果Root Logger或stdout Logger的级别设为WARN及以上,System.out.println的输出(默认对应INFO级别)会被过滤。将对应Logger的级别调整为INFO或DEBUG,确保输出能被正常记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:32:33