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

How to add custom log file for every day entries in wso2 apim?

我正在尝试将 wso2 apim (4.0.0) 的网关访问日志配置为每天写入一个单独的日志文件,以便它应该包含 api 用户名和 api 日志文件中的名称。为了形成日志文件的结构,我遵循了 .

的答案

我的日志文件结构如下:

日期时间 |远程IP |用户名 | invoked_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添加到log4j2.properties

    顶部的appenders属性
    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.

的文件中