I'm using JMeter 5.2.1 and when I run some test in GUI mode (or even start the GUI mode), the jmeter.log is populated. But when I use non-GUI mode, nothing is happening.
Command line : "M:\Apps\apache-jmeter-5.2.1\bin\jmeter" -Jthreads=1 -Jrampup=20 -n -t "M:\Data.....\test.jmx" -l "M:\Data\test.csv".
Test runs fine and generates csv, but the jmeter.log doesn't get touched. Right after the test completes, JMeter console is closed down so can't even see if there's any further errors.
My understanding is this jmeter.log should be updated from both GUI and non GUI test runs. Am I missing something?
Your understanding is correct, however it might not be the case regarding your understanding regarding where to find the jmeter.log file.
If you're running JMeter from it's "bin" folder - the jmeter.log file will be generated/updated in this folder
If you're running JMeter from another folder, it will be generated in that folder. If this is your case - instead of looking for updated log under M:\Apps\apache-jmeter-5.2.1\bin
look for in in %cd%\jmeter.log
If the above hints don't help - most probably your log4j2.xml file got corrupted somewhere somehow, get the brand new version from JMeter GitHub
If you want JMeter to store the log under M:\Apps\apache-jmeter-5.2.1\bin
folder no matter where you run it from - replace this line:
<File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
with this one:
<File name="jmeter-log" fileName="M:/Apps/apache-jmeter-5.2.1/bin/jmeter.log}" append="false">
and on next start of JMeter you will see the "log update" you're looking for.
More information: How to Configure JMeter Logging
Also be aware that according to JMeter Best Practices you should always be using the latest version of JMeter so it might be a good idea to perform an upgrade