如何在WSO2 APIM日志中显示用户名和被调用的API名称?
WSO2 APIM 4.0.0 自定义网关访问日志配置方案
配置步骤
- 第一步:修改Tomcat访问日志配置
打开<APIM_HOME>/repository/conf/tomcat/catalina-server.xml文件,找到org.apache.catalina.valves.AccessLogValve配置节点,替换原有pattern属性值为自定义格式:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="${carbon.home}/repository/logs" prefix="gateway_access_log." suffix=".log" pattern="%{yyyy-MM-dd HH:mm:ss}t | %h | %{api.ut.userName}o | %{api.ut.api}o | %U | %r | %s %b" />
你可以根据需要调整prefix属性自定义日志文件名前缀,directory属性自定义日志存储路径。
- 第二步:开启API属性日志注入
打开<APIM_HOME>/repository/conf/deployment.toml文件,添加如下配置:
[apim.http_access_log] enable = true enable_api_related_logs = true
- 第三步:重启WSO2 APIM服务,配置即可生效,生成的日志将严格匹配你需要的结构:
datetime | remoteIp | username | invoked_api_name | api_url | request | response
占位符说明
%{yyyy-MM-dd HH:mm:ss}t:格式化的请求发生时间%h:客户端远程IP地址%{api.ut.userName}o:API调用方的认证用户名,未认证场景默认输出-%{api.ut.api}o:被调用的API名称,未匹配到网关托管API的请求默认输出-%U:请求的URL路径%r:完整HTTP请求行,包含请求方法、路径、HTTP版本信息%s %b:HTTP响应状态码 + 响应内容字节数
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

