Gatling 2 - Logback 调试不输出 JSON 正文 - 内容类型 Application/Json
Gatling 2 - Logback Debug Not Outputting JSON Body - Content Type Application/Json
我正在使用 Gatling 2,下面是我的 logback.xml
配置。
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
<immediateFlush>false</immediateFlush>
</encoder>
</appender>
<!--Uncomment for logging ALL HTTP request and responses-->
<logger name="io.gatling.http.ahc" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!-- <logger name="io.gatling.http.ahc" level="DEBUG" /> -->
<root level="WARN">
<appender-ref ref="CONSOLE" />
</root>
在控制台查看日志时我看到
Content-Length: [1381]
Keep-Alive: [timeout=5, max=98]
Connection: [Keep-Alive]
Content-Type: [application/json]
但是,我在调试信息中没有看到任何 JSON 正文。我破解了我的代码并将 Content-Type
从 application/json
更改为 text/html
并收到以下内容:
Connection: [Keep-Alive]
Content-Type: [text/html]
Content-Encoding: [gzip]
Content-Length: [1381]
body=
{"items":[data_here]}}
有什么方法可以配置 gatling 或 logback 来显示这个 JSON 正文?
好的。加特林很奇怪。
它会自动记录 text/html
的正文,但不会记录 application/json
的正文,除非它认为有理由记录它!
为了输出 json 主体,我将 .check(bodyString.exists)
添加到我的 http 请求中,它在日志文件中正确显示。
编辑:
在我的 logback.xml
中添加了额外的行
<!-- Uncomment for logging ALL HTTP request and responses -->
<logger name="io.gatling.http.ahc" level="TRACE" />
<logger name="io.gatling.http.response" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!-- <logger name="io.gatling.http.ahc" level="DEBUG" /> -->
<!-- <logger name="io.gatling.http.response" level="DEBUG" /> -->
作为初学者,有些东西不能像您期望的那样工作,并不一定意味着它很奇怪。这种行为可能有充分的理由。
这里是为了让块不保存在内存中,在不需要时组装和解码。
Reading the documentation 通常有帮助。
然后,您还可以在 "io.gatling.http" 记录器上启用 DEBUG 日志记录。
为了记录,我填写了一个 issue 来改进它。
我正在使用 Gatling 2,下面是我的 logback.xml
配置。
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
<immediateFlush>false</immediateFlush>
</encoder>
</appender>
<!--Uncomment for logging ALL HTTP request and responses-->
<logger name="io.gatling.http.ahc" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!-- <logger name="io.gatling.http.ahc" level="DEBUG" /> -->
<root level="WARN">
<appender-ref ref="CONSOLE" />
</root>
在控制台查看日志时我看到
Content-Length: [1381]
Keep-Alive: [timeout=5, max=98]
Connection: [Keep-Alive]
Content-Type: [application/json]
但是,我在调试信息中没有看到任何 JSON 正文。我破解了我的代码并将 Content-Type
从 application/json
更改为 text/html
并收到以下内容:
Connection: [Keep-Alive]
Content-Type: [text/html]
Content-Encoding: [gzip]
Content-Length: [1381]
body=
{"items":[data_here]}}
有什么方法可以配置 gatling 或 logback 来显示这个 JSON 正文?
好的。加特林很奇怪。
它会自动记录 text/html
的正文,但不会记录 application/json
的正文,除非它认为有理由记录它!
为了输出 json 主体,我将 .check(bodyString.exists)
添加到我的 http 请求中,它在日志文件中正确显示。
编辑:
在我的 logback.xml
<!-- Uncomment for logging ALL HTTP request and responses -->
<logger name="io.gatling.http.ahc" level="TRACE" />
<logger name="io.gatling.http.response" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!-- <logger name="io.gatling.http.ahc" level="DEBUG" /> -->
<!-- <logger name="io.gatling.http.response" level="DEBUG" /> -->
作为初学者,有些东西不能像您期望的那样工作,并不一定意味着它很奇怪。这种行为可能有充分的理由。
这里是为了让块不保存在内存中,在不需要时组装和解码。 Reading the documentation 通常有帮助。
然后,您还可以在 "io.gatling.http" 记录器上启用 DEBUG 日志记录。 为了记录,我填写了一个 issue 来改进它。