首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gatling -如何在scala中设置gatling控制台日志级别

Gatling -如何在scala中设置gatling控制台日志级别
EN

Stack Overflow用户
提问于 2018-04-26 16:37:34
回答 3查看 5.8K关注 0票数 5

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

代码语言:javascript
复制
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()
}

下面是我的目录树:

代码语言:javascript
复制
¦   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的默认文件。

EN

回答 3

Stack Overflow用户

发布于 2018-11-09 08:41:30

下面是你如何做到这一点:

代码语言:javascript
复制
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"))
   ...
票数 7
EN

Stack Overflow用户

发布于 2018-04-26 17:12:42

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

代码语言:javascript
复制
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()
}
票数 1
EN

Stack Overflow用户

发布于 2018-05-02 20:53:56

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

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

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

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

代码语言:javascript
复制
<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>
代码语言:javascript
复制
 -->  

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50038457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档