在访问日志中打印light-4j应用程序的查询参数



我的lighter4j应用程序正在使用AuditHandler打印访问日志。打印的默认格式为:

{"时间戳":1580470146236,"端点":"/mmt/register@post","X-Correlation-Id":"123456","statusCode":200,"responseTime":70}

但是,客户端正在使用查询参数访问API:/mmt/register?id=2

如何自定义访问日志,以便它也在访问日志中打印查询参数?{"时间戳":1580470146236,"端点":"/mmt/register@post?id=2","X-Correlation-id":"123456","statusCode":200,"responseTime":70}

我当前的logback设置是:

<appender name="access-log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>/opt/logs/Register/access.json</File>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/opt/logs/Register/access.%d{yyyy-MM-dd}.%i.json
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 1GB -->
<maxFileSize>1GB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<MaxHistory>50</MaxHistory>
</rollingPolicy>
<encoder>
<Pattern>%m%n</Pattern>
</encoder>
</appender>

默认的AuditHandler只记录作为路径和方法组合的端点。查询参数不是其中的一部分。要记录查询参数,有两个选项。

  1. 如果您想在生产中记录查询参数,请在light-4j repo中自定义AuditHandler,并将其替换为handler.yml文件中的自定义on。

  2. 如果您只需要在dev环境中记录查询参数,那么您可以连接DumpHandler。它基本上会转储请求和响应中的所有内容,包括标头、查询参数、路径参数、cookie和请求正文。但是,它会显著降低系统速度,因此不建议在生产中启用它。查看handler.yml文件以取消对处理程序的注释,并取消对默认链中的别名的注释。

相关内容

  • 没有找到相关文章

最新更新