微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为 wso2 apim 中的每天条目添加自定义日志文件?

如何解决如何为 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 Appender

    appender.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 举报,一经查实,本站将立刻删除。