【问题标题】:Gatling - How to set gatling console log level in scalaGatling - 如何在 Scala 中设置 Gatling 控制台日志级别
【发布时间】:2018-10-06 21:15:39
【问题描述】:

我创建了一个 maven 项目,该项目将生成一个 jar 文件,其中包含我所有的模拟,当我运行它时,控制台日志级别太高。对我来说无用的信息太多了。 有没有办法在代码中配置它?这是我的代码:

import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder 
import io.gatling.core.config.GatlingConfiguration

object Engine extends App {
    val props = new GatlingPropertiesBuilder
    if(System.getProperty("resultsFolder") == null){
      props.resultsDirectory("results")
    }else{
      props.resultsDirectory(System.getProperty("resultsFolder"))
    }

    props.dataDirectory("data")
      props.simulationClass(System.getProperty("simulationClass"))

    Gatling.fromMap(props.build)
  sys.exit()
}

这是我的目录树:

¦   dependency-reduced-pom.xml
¦   pom.xml
¦
+---src
    +---main
    ¦   +---resources
    ¦   +---scala
    ¦       +---myPackage
    ¦                   ¦   Engine.scala
    ¦                   ¦
    ¦                   +---simulation
    ¦                           BasicSimulation.scala
    ¦
    +---test
        +---resources
        ¦       application.conf
        ¦       gatling.conf
        ¦       logback-test.xml
        ¦
        +---scala
                Placeholder.scala

.config 文件和 logback 是 Gatling 的默认文件。

【问题讨论】:

    标签: scala logging jar gatling


    【解决方案1】:

    我找到了解决方案:将日志级别放在引擎中,而不是读取 logbaxk.xml 文件:

    import io.gatling.app.Gatling
    import io.gatling.core.config.GatlingPropertiesBuilder 
    import io.gatling.core.config.GatlingConfiguration
    import org.slf4j.LoggerFactory
    import java.util.logging.{Level, Logger}
    
    object Engine extends App {
     LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME).asInstanceOf[Logger].setLevel(Level.WARNING)
        val props = new GatlingPropertiesBuilder
        if(System.getProperty("resultsFolder") == null){
          props.resultsDirectory("results")
        }else{
          props.resultsDirectory(System.getProperty("resultsFolder"))
        }
    
        props.dataDirectory("data")
          props.simulationClass(System.getProperty("simulationClass"))
    
        Gatling.fromMap(props.build)
      sys.exit()
    }
    

    【讨论】:

      【解决方案2】:

      我像这样运行我的加特林:mvn clean gatling:execute@slalom -DLOG_LEVEL=WARN

      用任何其他级别替换WARN,它将显示为这样。

      LOG_LEVEL 然后在编译过程中直接替换在 logback-test.xml 中,如下所示:

      <?xml version="1.0" encoding="UTF-8"?>
      

      <properties>
          <LOG_LEVEL>WARN</LOG_LEVEL>
      </properties>
      
      <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
          <resetJUL>true</resetJUL>
      </contextListener>
      
      <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" level="${LOG_LEVEL}" default = "WARN"/>
      <!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
      <!--<logger name="io.gatling.http" level="WARN" />-->
      
      <root level="${LOG_LEVEL}" default="WARN">
          <appender-ref ref="CONSOLE" />
      </root>
      
      -->

      【讨论】:

      • 但简短的回答是,更改此文件logback-test.xml,此部分&lt;root level="${LOG_LEVEL}" default="WARN"&gt; &lt;appender-ref ref="CONSOLE" /&gt; &lt;/root&gt;
      【解决方案3】:

      这是你的做法:

      package gatling.simulations
      
      import io.gatling.core.Predef._
      import io.gatling.http.Predef._
      import scala.concurrent.duration._
      import org.slf4j.LoggerFactory
      import ch.qos.logback.classic.{Level, LoggerContext}
      
      class FooSimulation extends Simulation {
      
        val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext]
        // Log all HTTP requests
        context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE"))
        // Log failed HTTP requests
        //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG"))
         ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2017-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多