首页 > 解决方案 > 如何在 wso2 apim 日志中显示用户名和调用的 api 名称?

问题描述

我正在尝试配置 wso2 apim (4.0.0) 的网关访问日志,以便它应该在日志文件中包含 api 用户名和 api 名称。我遵循了这个文档

我想要的日志文件结构如下:

日期时间 | 远程IP | 用户名 | 调用_api_name | api_url | 请求 | 回复

任何帮助表示赞赏

标签: wso2wso2iswso2-am

解决方案


和在访问日志级别不可用invoked_api_nameusername因此,您可以根据需要实现自定义 Synapse 处理程序以将相关信息记录到任一wso2carbon.log或单独的日志中。

这是为 API Manager 3.2.0 Custom API Log Handler编写的示例。你也可以参考@Ishara Cooray提到的Handler 。

更新依赖项以与 API Manager 4.0.0 环境保持一致。使用 Handler 的 TOML 配置如下(与 3.2.0 中的配置略有不同)

[synapse_handlers.<custom_name>]
enabled = true
class = '<package-name.class>'

例如

[synapse_handlers.api_log_handler]
enabled = true
class = 'com.sample.handlers.APILogHandler'

更新

我已经使用 API Manager 4.0.0 依赖项更新了自定义处理程序实现。找到分支并README 在此处更新。


推荐阅读