https://bz.apache.org/bugzilla/show_bug.cgi?id=60589
Bug ID: 60589
Summary: Migrating LogKit to SLF4J - Drop avalon, logkit and
excalibur with backward compatibility for 3rd party
modules.
Product: JMeter
Version: unspecified
Hardware: PC
OS: Mac OS X 10.1
Status: NEW
Severity: enhancement
Priority: P2
Component: Main
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
First, I think the goals are as follows:
# Goals
G1. Drop dependencies on logkit, exclalibur and logkit.
G2. Allow logging configuration with other popular logging framework
configuration such as log4j2. log4j2 is the primary one to support.
(It should be able to support logback, but that's out of scope in this story.
That can be part of other new story later.)
G3. Keep the existing UI functionalities.
G4. Keep the backward compatibility for 3rd party plugin modules.
G5. Ensure all the code use slf4j for logging (exception: usages of logkit
logger interface for backward compatibility).
Second, let me try to list all the existing logging related features of JMeter
# Current Logging Related Features
CF1. Users are able to configure log file, logging format, log levels for the
combined root logger or for each category in the JMeter configuration
properties file or command line arguments (`-j' for log file and `-L' for log
level).
CF2. Logs by libraries using Commons Logging are passed to the JMeter logging
(logkit) by JMeter's Commons Logging implementation.
CF3. Advanced Excalibur logging configuration is possible through `log_config'
property in JMeter configuration properties.
CF3. Logs Viewer UI Menu can be turned on to receive logging event and show in
the UI panel (org.apache.jmeter.gui.LoggerPanel). Note this is not reading the
log file directly, but receives and renders log events currently propagated by
the underlying logging framework at runtime only.
CF4. For libraries using log4j API directly, log4j system property is set with
`log4j.conf' configuration properties by default, but the logs through log4j is
not used by JMeter, it's simply appended to a separate log file.
Since the goals include removing dependencies on logkit, excalibur and avalon,
and introducing log4j2 logging framework, I'd like to propose the following in
the feature level.
# Proposal in Feature Level
PF1. Users are able to configure log file, logging format, log levels, etc. for
combined root logger and for each logger in a separate log4j2 configuration
file, ./log4j2.xml or bin/log4j2.xml.
PF2. Users are able to change the log4j2 configuration by passing the standard
log4j2 system property (e.g,
`-Dlog4j2.configuration=file:/var/conf/log4j2-pt1.xml').
PF3. Logs Viewer UI Menu keeps the same functionality as it does.
PF4. All the logging related configuration in JMeter configuration properties
will be dropped. Also, the logging related command line arguments (`-j' for log
file and `-L' for log level) will be dropped.
PF5. Advanced Excalibur logging configuration support will be dropped.
PF6. JMeter Commons Logging provision will be dropped. Instead jcl-over-slf4j
jar dependency will be provided for the same feature.
PF7. log4j support through `log4j.configuration' system property and
`log4j.conf' will be dropped. Instead Log4j 2's log4j-1.2-api.jar [1] will be
provided for backward compatibility.
# Candidate solutions
- I'll describe solution ideas in comments.
-----
[1] https://logging.apache.org/log4j/2.x/manual/migration.html
--
You are receiving this mail because:
You are the assignee for the bug.