日志记录: `logging.console` 的优先级高于 logback.xml,这在文档中没有说明,`report: 'warn'` 是错误的 `printEnabled` 替换项(会清空 Gatling 重放)
logging.console覆盖 logback.xml 中的每个类别级别 — — 这是设计上的,但文档中隐藏了这一点configure logging = { console: X }(karate-config.js,--log-console, karate-pom.json) 调用LogContext.setRuntimeLogLevel,该方法在karate上设置了级别 X,每个karate.*类别和io.karatelabs,替换了用户的 logback.xml 为这些名称,并根据场景进行了快照和恢复。这就是 #2917 的修复,并将保留。缺失的内容是: - 没有页面说明优先级规则或逃生门: 省略console,Karate 从不触及 Logback 级别 — logback.xml 完全控制了这些名称。文档表中列出了console,标记为 "默认info",这读取为一个生效的默认值;它只是karate.get('config')所报告的值,没有任何应用它。 -logging.mdx表示覆盖持续 "运行期间";它是按场景进行的。 -performance-testing.mdx在示例 karate-config.js 中设置了console: 'warn',然后十三行后,给出了一个 logback.xml 配方(karate.scenarioINFO,karate.httpTRACE),该console行默默地击败了它。客户正好遇到了这一点:“将 logging.console 设置为任何值都完全覆盖了 logback.xml 中的任何特定日志级别设置。”report: 'warn'是文档中对printEnabled = false的替代 — — 这是错误的print/karate.log()进入 SLF4Jkarate.scenario以 INFO 无条件 的方式(LogContext.LogWriter);只有报告缓冲区的追加受logging.report限制。因此,report: 'warn': - 不会阻止打印输出到控制台,并且 - 清空 Gatling 日志重放(HTTP 块和打印在 INFO 级别下进入缓冲区),然后记录了“捕获没有输出… configure logging = { report: 'info' }”提示。 该提示是为什么客户得出了“必须将 logging.report 设置为 'info' 才能启用日志重放”的结论。这不是事实:默认报告阈值是 DEBUG,而重放仅通过karateProtocol().logReplay(...)来启用。错误的建议存在于printEnabled的弃用警告中,KarateConfig、docs/MIGRATION_GUIDE.md、karate-docs迁移页面、logging.mdx(掩码部分)和performance-testing.mdx的故障排除行“日志重放产生没有输出 → 将 logging.report 设置为 'info'”。printEnabled = false的正确的 v2 等价物是karate.scenario的 Logback 级别(或console: 'warn'来静默所有 Karate 输出)。"重放器只输出 HTTP 请求和响应" — — 不可重现
内容来源: karatelabs/karate