You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scala代码中配置Gatling控制台日志级别

当然可以搞定!Gatling底层依赖SLF4J+Logback,咱们完全能通过代码或者自定义配置文件来降低日志级别,减少那些没用的输出。给你两种实用方案:

方案一:代码动态调整日志级别

这种方式适合快速修改,直接在你的Engine对象里添加日志级别配置代码就行。首先要确保项目里有Logback的依赖(Gatling通常会自带,但保险起见可以在Maven pom.xml里确认):

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.11</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.11</version>
</dependency>

然后修改你的Engine代码,在配置Gatling属性之前先调整日志级别:

import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder
import io.gatling.core.config.GatlingConfiguration
import ch.qos.logback.classic.Level
import ch.qos.logback.classic.LoggerContext
import org.slf4j.LoggerFactory

object Engine extends App {
    // 初始化日志配置
    val loggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext]
    
    // 调整根日志级别为WARN,过滤掉大量DEBUG/INFO级别的无用输出
    loggerContext.getLogger("root").setLevel(Level.WARN)
    
    // 如果你只想针对Gatling相关的日志调整,可指定具体包名
    loggerContext.getLogger("io.gatling").setLevel(Level.INFO) // 保留Gatling核心运行日志
    loggerContext.getLogger("io.gatling.http").setLevel(Level.WARN) // 屏蔽HTTP模块的冗余日志

    // 你的原有配置逻辑
    val props = new GatlingPropertiesBuilder
    if(System.getProperty("resultsFolder") != null) {
        props.resultsFolder(System.getProperty("resultsFolder"))
    }
    // 其他Gatling配置...

    Gatling.fromMap(props.build, GatlingConfiguration.load())
}

方案二:使用自定义Logback配置文件

这种方式更灵活,适合需要精细化日志控制的场景,比如不同模块设置不同级别、输出到文件等。

  1. 在src/main/resources下创建logback-gatling.xml配置文件,示例内容如下:
<configuration>
    <!-- 控制台输出配置 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 根日志级别设为WARN,减少全局冗余输出 -->
    <root level="WARN">
        <appender-ref ref="CONSOLE" />
    </root>

    <!-- 自定义Gatling模块日志级别 -->
    <logger name="io.gatling" level="INFO" /> <!-- 保留核心运行日志 -->
    <logger name="io.gatling.http" level="WARN" /> <!-- 屏蔽HTTP模块的细节日志 -->
    <logger name="io.gatling.core" level="INFO" /> <!-- 可选:保留核心引擎日志 -->
</configuration>
  1. 在你的Engine代码开头,指定使用这个配置文件:
import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder
import io.gatling.core.config.GatlingConfiguration

object Engine extends App {
    // 指定自定义Logback配置文件(如果文件在resources下,打包后可通过类路径获取)
    val classLoader = getClass.getClassLoader
    System.setProperty("logback.configurationFile", classLoader.getResource("logback-gatling.xml").getPath)

    // 你的原有配置逻辑
    val props = new GatlingPropertiesBuilder
    if(System.getProperty("resultsFolder") != null) {
        props.resultsFolder(System.getProperty("resultsFolder"))
    }
    // 其他Gatling配置...

    Gatling.fromMap(props.build, GatlingConfiguration.load())
}

两种方案都能有效降低日志冗余,你可以根据自己的需求选择。如果只是临时调整,方案一更快捷;如果需要长期维护复杂的日志规则,方案二更合适。

内容的提问来源于stack exchange,提问作者kamal951

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:41:00