Logging 如何在长时间运行执行期间清除jmeter.log文件?

Logging 如何在长时间运行执行期间清除jmeter.log文件?,logging,process,jmeter,Logging,Process,Jmeter,我有JMeter3.0节点,它已经进行了24小时的负载测试。 但是,3小时后,磁盘的使用率会被jmeter.log所淹没 在测试执行期间,我试图自己清理它,但没有成功。 我试过: truncate jmeter.log --size 0 cat /dev/null > jmeter.log 它总是失败: -rw-rw-r-- 1 tester tester 27591745 Sep 14 06:55 jmeter.log -rw-rw-r-- 1 tester tester

我有JMeter
3.0
节点,它已经进行了24小时的负载测试。
但是,3小时后,磁盘的使用率会被
jmeter.log
所淹没

在测试执行期间,我试图自己清理它,但没有成功。 我试过:

truncate jmeter.log --size 0
cat /dev/null > jmeter.log 
它总是失败:

-rw-rw-r-- 1 tester tester 27591745 Sep 14 06:55 jmeter.log
-rw-rw-r-- 1 tester tester        0 Sep 14 06:55 load_execution.log
-rw-r--r-- 1 tester tester    48320 Sep 14 06:41 minion_load.jmx
-rw-rw-r-- 1 tester tester        0 Sep 14 06:42 report_res_20170914-064202.xml
[root@ec2-54-172-27-231.compute-1.amazonaws.com dev-us1]# ll
total 1064
-rw-rw-r-- 1 tester tester 28311748 Sep 14 06:55 jmeter.log
-rw-rw-r-- 1 tester tester      219 Sep 14 06:55 load_execution.log
-rw-r--r-- 1 tester tester    48320 Sep 14 06:41 minion_load.jmx
-rw-rw-r-- 1 tester tester        0 Sep 14 06:42 report_res_20170914-064202.xml
[root@ec2-54-172-27-231.compute-1.amazonaws.com dev-us1]# ll
total 104
-rw-rw-r-- 1 tester tester 29422392 Sep 14 06:56 jmeter.log
-rw-rw-r-- 1 tester tester        0 Sep 14 06:56 load_execution.log
-rw-r--r-- 1 tester tester    48320 Sep 14 06:41 minion_load.jmx
-rw-rw-r-- 1 tester tester        0 Sep 14 06:42 report_res_20170914-064202.xml
[root@ec2-54-172-27-231.compute-1.amazonaws.com dev-us1]# ll
另一个文件会定期清除。我使用了
crontab

我在非GUI模式下启动JMeter

如何在文件到达时清除默认值
jmeter.log
或设置任何阈值。。尺寸

  • 将某处添加到您的测试计划中
  • 配置如下:

    • 命令:
      /bin/bash
    • 参数1:
      -c
    • 参数2:
      >jmeter.log
  • 差不多


    有关从JMeter测试调用第三方应用程序的更多信息,请参阅文章。

    如果您对信息级别的JMeter.log的内容不太感兴趣,您可以在
    JMeter.properties
    中将日志级别降低为警告或错误。更改:

    log_level.jmeter=INFO
    

    如果您想将日志记录保存到信息或调试级别,请考虑使用支持日志旋转的日志器,也可以通过<代码> JMeTM来配置。


    直接日志截断通常不是控制log4j,尤其是log4j2日志大小的推荐方法,因为它可能会导致各种问题(例如JMeter完全停止写入日志,或者在下一次写入时,JMeter可能会再次恢复较大的大小,但文件的开头将包含空字符)。

    如果使用JMeter 3.1或更低版本,见Kyril的答案

    注:我建议您高度评价uograde。 自JMeter 3.2以来,log4j2被用作日志记录实现

    因此,打开jmeter/bin/log4j2.xml并设置:

    • 日志级别为警告,默认值为INFO
    • 如果您仍然有日志,请阅读它们并检查您是否有问题,因为当没有问题时,此文件通常是空的
    • 使用log4j2 RollingFileappder配置日志旋转:


    好答案最多3个。1@KirilS我无法选择此答案的原因是我无法访问JMeter属性。我只能从用户界面使用解决方案。谢谢你的链接。然而,您能否简单地解释一下您的方法应该做什么?它是否定期清除文件,或者甚至不创建文件?不够清晰。每次调用采样器时,它都会清除文件。此命令为什么会将文件转换为二进制文件?在运行过程中,它也在增长。@nazar_art我在回答中解释了原因:因为直接截断文件会导致NUL字符写入数据所在的位置(NUL被认为是二进制字符),这就是为什么不应该直接截断日志文件。@Dmitri我不明白为什么这个回答会有一些反对票。它工作得很好。这正是我想要的。
    log_level.jmeter=WARN
    
    # Excalibur logging provides the facility to configure logging using
    # configuration files written in XML. This allows for such features as
    # log file rotation which are not supported directly by JMeter.
    #
    # If such a file specified, it will be applied to the current logging
    # hierarchy when that has been created.
    # 
    #log_config=logkit.xml