如何解决如何为 wso2 apim 中的每天条目添加自定义日志文件?
我正在尝试将 wso2 apim (4.0.0) 的网关访问日志配置为每天写入单独的日志文件,以便它应在日志文件中包含 api 用户名和 api 名称。为了形成日志文件的结构,我遵循了 following question 的答案。
我的日志文件结构如下:
日期时间 |远程IP |用户名 |被调用的api_name | api_url |请求 |回复
现在所有条目都被写入 wso2carbon.log
我希望将其写入具有以下模式的文件中:
custom_access_log_gwyyyy-mm-dd.log
欢迎任何帮助!
解决方法
您可以引入一个额外的 Log Appender 来记录其中的特定 Handler 日志。在下方查找示例说明
-
打开
<apim>/repository/conf/log4j2.properties
并添加以下内容以创建 Log Appenderappender.APIHANDLER_LOG.type = RollingFile appender.APIHANDLER_LOG.name = APIHANDLER_LOG appender.APIHANDLER_LOG.fileName = ${sys:carbon.home}/repository/logs/api-log.log appender.APIHANDLER_LOG.filePattern = ${sys:carbon.home}/repository/logs/api-log-%d{MM-dd-yyyy}.log appender.APIHANDLER_LOG.layout.type = PatternLayout appender.APIHANDLER_LOG.layout.pattern = TID: [%tenantId] [%appName] [%d] %5p {%c} - %m%ex%n appender.APIHANDLER_LOG.policies.type = Policies appender.APIHANDLER_LOG.policies.time.type = TimeBasedTriggeringPolicy appender.APIHANDLER_LOG.policies.time.interval = 1 appender.APIHANDLER_LOG.policies.time.modulate = true appender.APIHANDLER_LOG.policies.size.type = SizeBasedTriggeringPolicy appender.APIHANDLER_LOG.policies.size.size=10MB appender.APIHANDLER_LOG.strategy.type = DefaultRolloverStrategy appender.APIHANDLER_LOG.strategy.max = 20 appender.APIHANDLER_LOG.filter.threshold.type = ThresholdFilter appender.APIHANDLER_LOG.filter.threshold.level = DEBUG
-
将创建的 Appender 添加到
appenders
顶部的log4j2.properties
属性appenders=APIHANDLER_LOG,CARBON_CONSOLE,..
-
配置您的包以登录新的 Appender
logger.api-log-handler.name = com.sample.handlers.APILogHandler logger.api-log-handler.level = DEBUG logger.api-log-handler.appenderRef.APIHANDLER_LOG.ref = APIHANDLER_LOG logger.api-log-handler.additivity = false
loggers = api-log-handler,AUDIT_LOG,...
保存配置并调用 API。现在日志将打印到名为 api-log.log
的文件中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。