如何为WSO2 API Manager 4.1所有API默认启用api.log日志?
WSO2 API Manager 4.1 全局启用BASIC级API请求/响应日志配置方法
1. 配置日志输出目标(确保写入api.log)
- 找到网关节点的
repository/conf/log4j2.properties文件 - 确认或添加以下api.log的Appender配置:
appender.api.type = RollingFile appender.api.name = API_LOGFILE appender.api.fileName = ${sys:carbon.home}/repository/logs/api.log appender.api.filePattern = ${sys:carbon.home}/repository/logs/api-%d{MM-dd-yyyy}.log appender.api.layout.type = PatternLayout appender.api.layout.pattern = [%d] %5p {%c} - %m%n appender.api.policies.type = Policies appender.api.policies.time.type = TimeBasedTriggeringPolicy appender.api.policies.time.interval = 1 appender.api.policies.time.modulate = true - 确保Logger配置指向该Appender:
logger.API_LOG.name = org.apache.synapse.commons.logging.MESSAGE_LOGGER logger.API_LOG.level = INFO logger.API_LOG.additivity = false logger.API_LOG.appenderRef.API_LOGFILE.ref = API_LOGFILE
2. 全局启用BASIC级别日志(默认对所有API生效)
- 编辑网关节点的
repository/conf/deployment.toml文件,添加全局日志配置:[apim.gateway.log_config] enable = true log_level = "BASIC" log_request = true log_response = true - 配置全局消息中介,确保所有API流量触发日志:
[apim.gateway.global_message_mediators] in = ["LogMediator"] out = ["LogMediator"] - 在
repository/conf/synapse.properties中设置全局日志级别为BASIC:synapse.global.log.level=BASIC
3. 验证配置生效
- 重启WSO2 API网关节点
- 调用任意已发布API,检查
repository/logs/api.log,确认生成包含请求/响应基本信息的日志,示例:[2024-05-20 14:30:00] INFO {org.apache.synapse.commons.logging.MESSAGE_LOGGER} - To: /test/api/v1/resource, MessageID: urn:uuid:abc123, Direction: REQUEST, HTTP_METHOD: GET, REMOTE_ADDR: 192.168.1.100
[2024-05-20 14:30:00] INFO {org.apache.synapse.commons.logging.MESSAGE_LOGGER} - To: /test/api/v1/resource, MessageID: urn:uuid:abc123, Direction: RESPONSE, HTTP_STATUS: 200, RESPONSE_TIME: 15ms
内容的提问来源于stack exchange,提问作者eranaga
相关产品推荐
相关产品推荐

