docker - 将 jmeter.log 也发送到控制台标准输出
问题描述
当 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 仪表板查看它们。
欣赏你的想法。
解决方案
更新 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" />
所以每个日志也会被写入控制台
推荐阅读
- xamarin.android - 如何用 Assets 中的文件标题填充 listView?
- javascript - 如何为 firebase 配置 nativescript-vue 应用程序?
- c++ - 将指针传递给函数或数组到函数
- r - 如何使用 plotly 从图表中删除因子?
- javascript - 如何动态覆盖来自某个文件夹的一组分组图像
- unity3d - 如何在工具栏上应用表面磁性?
- java - 如何使用 Java 客户端在 Azure 中将 PublicIpAddress 与 LoadBalancer 分离?
- java - 如何在与 Firebase 关联的 Android Studio 中显示我的应用的所有在线用户?
- python - 芹菜:找不到模块
- java - Appium 无法识别屏幕上的元素,即使它们是使用 initElements 初始化的