maven - jmeter-maven-plugin 使用 logback.xml 将日志加载到 Elastic 绕过 Logstash 配置
问题描述
我有一个用例,我需要在没有日志存储配置的情况下将 Jmeter 日志加载到弹性搜索。
使用 pom.xml jmeter-maven-plugin 目标调用性能测试用例。
我希望将以下消息发送到 Elastic,
[INFO] summary = 180 in 00:00:01 = 182.6/s Avg: 0 Min: 0 Max: 0 Err: 180 (100.00%)
我尝试了文档中提到的以下内容,而不是使用 logback.xml 而不是 log4j2xml。
(链接)
高级日志配置 如果您将“log4j2.xml”添加到(默认为 ${project.base.directory}/src/test/conf)中,它将被复制到 /bin 文件夹中。如果一个不存在,则将使用 JMeter 提供的默认一个。
我还尝试将配置文件提供为
mvn -X -DAPPCONFIG=home/App1 -Dlogback.configurationFile=file:path/to/conf/logback.xml -Duser.timezone=GMT com.lazerycode.jmeter:jmeter-maven-plugin:jmeter -Dtest=TestClass#testmethod
在这两种情况下,logback.xml 都没有被使用。但我注意到在 git 中 pom.xml 包含 logback 依赖项。
任何输入,如何在 jmeter-maven-plugin 中配置 logback.xml 而不是 log4j2.xml?
解决方案
查看将 Java 应用程序的日志发送到 Elastic Stack,您似乎需要:
通过将下一行添加到pom.xml文件来添加
logstash-logback-encoder
到JMeter Classpath :<testPlanLibraries> <artifact>net.logstash.logback:logstash-logback-encoder:6.2</artifact> </testPlanLibraries>
将log4j2.xml文件的副本放置到
src/test/conf
Maven 项目的文件夹中,并根据您的要求配置 JMeter 日志记录。确保将 Logstash appender 添加到其中,例如:<appender name="STASH" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>/desired/location/of/the/log/file</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>/desired/location/of/the/log/file.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>7</maxHistory> </rollingPolicy> <encoder class="net.logstash.logback.encoder.LogstashEncoder"/> </appender> <root level="DEBUG"> <appender-ref ref="STASH"/> </root>
应该是这样,您不能指向
logback.xml
读取配置的文件,将输出转换为 JSON 并将数据提供给 ELK 堆栈
推荐阅读
- powerbi - 在 CALCULATE 函数中,当提供超过 1 个过滤器表达式时,如何应用过滤器?
- git - 无法将对象迁移到永久存储
- python - 如何在列表中进行查询?
- reactjs - 反应原生 | 平面清单和备忘录 | renderItem 没有功能
- amazon-web-services - 无服务器框架的 Lambda 函数别名?
- node.js - 如何遍历多个用户以及 FireStore 中的一个用户
- android - Android 10 NFC 应用程序 - 在 MS Intune Kiosk 模式下手机睡眠时停止工作
- python - Python 多处理装饰器在酸洗时失败
- powershell - Powershell 错误 + 无法将值“System.String”转换为类型“System.Management.Automation.SwitchParameter”
- c# - DateTimePicker 和 PostgreSQL 数据表搜索