Hello,
I am writing this message to have your opinion on the approach we should
follow.
Current situation:
- log configuration is done in jmeter.properties through:
- log_format
- log_format_type
- log_level.[package_name].[classname]=[PRIORITY_LEVEL]
- log_file.[category]=[filename]
- log_file=jmeter.log
- log_config=logkit.xml
I see 2 ways to proceed in implementation:
COMMON PART:
- We keep LoggingManager as is for third party plugins
- We create a LogTarget implementation that uses SLF4J to make all
current logging still work.
- Only this implementation will still use LogKit
- In next version of JMeter will will drop definitely
LogKit+Excalibur+Avalon
*APPROACH 1:*
Recode what currently exists for LogKit for Log4j2:
- We create a new class to initialize logging based on Log4j2 and follow
one of these approaches:
- https://logging.apache.org/log4j/2.x/manual/customconfig.html
- From my understanding , we should create a custom
CustomConfigurationFactory that takes Properties as Constructor passed in
JMeterUtils#initLogging
*APPROACH 2:*
We drop what currently exists and just initialize it simply with a Log4j2
configuration file, we only keep:
- log_file=jmeter.log as it is used by -j command line option
- log_config=log4j2.xml to configure the logging
My opinion is that we should stick to standard mechanism of Log4j2 that is
largelly documented and known and reduce as much as possible any custom
configuration in JMeter.
This of course breaks backward compatibility but version numbering will be
explicit about it as long as the release notes.
Regards
Philippe M.
@philmdot