将jmeter.log也发送至控制台标准输出。

问题描述 投票:0回答:1

当JMeter在非gui模式下启动时,它在控制台上显示了一些日志,如下所示。

342-MC-C02Y33GKJG5H:bin asankav$ ./jmeter -n -t /Users/asankav/myarea/jmetertest/Demo.jmx

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/asankav/software/apache-jmeter-5.1.1/lib/log4j-slf4j-impl-2.11.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/asankav/software/apache-jmeter-5.1.1/lib/ext/qperf_core-0.0.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Creating summariser <summary>

但是实际的测试执行日志会写入一个单独的日志文件,叫jmeter.log,它记录的是log4J级别的执行日志。

342-MC-C02Y33GKJG5H:bin asankav$ tail -f -n 500 jmeter.log
2020-06-04 11:53:58,710 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN
2020-06-04 11:53:58,728 INFO o.a.j.JMeter: Loading user properties from: user.properties
2020-06-04 11:53:58,729 INFO o.a.j.JMeter: Loading system properties from: system.properties
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: Copyright (c) 1998-2019 The Apache Software Foundation
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: Version 5.1.1 r1855137
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: java.version=1.8.0_221
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: os.name=Mac OS X
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: os.arch=x86_64
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: os.version=10.15.4
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: file.encoding=UTF-8
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: java.awt.headless=true
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: Max memory     =1073741824
2020-06-04 11:53:58,733 INFO o.a.j.JMeter: Available Processors =12
2020-06-04 11:53:58,736 INFO o.a.j.JMeter: Default Locale=English (EN)
2020-06-04 11:53:58,736 INFO o.a.j.JMeter: JMeter  Locale=English (EN)

我们能不能把这个jmeter.log的内容也引导到STDOUT控制台?我知道我们可以通过管道将日志发送到控制台,但是有没有办法使用JMeter的配置来做到这一点?

我在Kubernetes集群上以容器的形式运行JMeter,并希望将jmeter.log内容传送到控制台。这样这些日志就可以在容器日志上获得,并且可以通过Kubernetes仪表板查看。

感谢你的想法。

docker kubernetes jmeter log4j2
1个回答
4
投票

更新bin文件夹中的log4j2.xml。

加在下面 <Appenders>

<Console name="console" target="SYSTEM_OUT">
    <PatternLayout pattern="[%highlight{%-5level}] %d{DEFAULT} %c{1}.%M() - %msg%n%throwable{short.lineNumber}" />
</Console>

加在下面 <Root level="info">

<AppenderRef ref="console" />

所以每条日志也会被写入控制台

© www.soinside.com 2019 - 2024. All rights reserved.