JMeter同时登录控制台和日志查看器

时间:2020-04-17 20:56:46

标签: logging jmeter log4j

新手问题

使用JSR223后处理器

如何同时登录到两个?

想要避免重复邮件。

SCREEN SECTION

使用log.warn有大量的后期处理脚本,我需要这些消息同时显示在控制台中。一直在疯狂搜索,找不到关于使用一个日志同时输出到两个日志的任何信息。也许有某种方法可以使用预处理器将每个log.warn变成out.println?

谢谢

2 个答案:

答案 0 :(得分:1)

一些选项:

在每次记录警告时打印消息:

  • 使用可以同时执行两项操作的方法:

        String sentence = scanner.next();
        String[] split= sentence.split("\\s+");
        int wordCount = split.length;
        System.out.println(wordCount);
    
  • 使用AspectJ中的各个方面

在log4j中使用2个附加程序(一个用于控制台,一个用于文件)

如果将消息记录到控制台(STDOUT)可以替代public static void printAndLog(Logger log, String message) { System.out.println(message) log.warn(message) } ,则适用。

  • 调整log4j.properties:

    System.out.println
  • 调整log4j2.xml

    log4j.rootLogger=INFO,CONSOLE,FILE
    log4j.appender.FILE=org.apache.log4j.FileAppender    
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
    

答案 1 :(得分:1)

https://logging.apache.org/log4j/2.x/manual/appenders.html

上找到了答案

在JMeter的bin文件夹中的log4j2.xml中添加了以下内容

<Appenders>

<File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
  <PatternLayout>
    <pattern>%d %p %c{1.}: %m%n</pattern>
  </PatternLayout>
</File>

<GuiLogEvent name="gui-log-event">
  <PatternLayout>
    <pattern>%d %p %c{1.}: %m%n</pattern>
  </PatternLayout>
</GuiLogEvent>

<Console name="STDOUT" target="SYSTEM_OUT">
  <PatternLayout>
    <pattern>%d %p %c{1.}: %m%n</pattern>
  </PatternLayout>
</Console>

<Loggers>

<Root level="info">
  <AppenderRef ref="jmeter-log" />
  <AppenderRef ref="gui-log-event" />
  <AppenderRef ref="STDOUT"/>
</Root>

如果没有@romania_engineer,就找不到答案