You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2020/04/05 12:40:22 UTC
[jmeter] branch master updated: Mark the currently selected log
level in the options menu
This is an automated email from the ASF dual-hosted git repository.
vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new 2314361 Mark the currently selected log level in the options menu
2314361 is described below
commit 231436138836aafd9f697896cdc9b442faa4e8d2
Author: Vladimir Sitnikov <si...@gmail.com>
AuthorDate: Sun Apr 5 15:39:58 2020 +0300
Mark the currently selected log level in the options menu
---
.../org/apache/jmeter/gui/action/LogLevelCommand.java | 16 +++++++++++++---
.../java/org/apache/jmeter/gui/util/JMeterMenuBar.java | 16 +++++++++++++---
xdocs/changes.xml | 4 +++-
3 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/LogLevelCommand.java b/src/core/src/main/java/org/apache/jmeter/gui/action/LogLevelCommand.java
index 2454d55..a21473f 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/LogLevelCommand.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/LogLevelCommand.java
@@ -21,10 +21,13 @@ import java.awt.event.ActionEvent;
import java.util.HashSet;
import java.util.Set;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.logging.log4j.core.config.LoggerConfig;
+import org.apiguardian.api.API;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
/**
* Implements log level setting menu item.
@@ -49,12 +52,19 @@ public class LogLevelCommand extends AbstractAction {
@Override
public void doAction(ActionEvent ev) {
String levelString = ev.getActionCommand().substring(ActionNames.LOG_LEVEL_PREFIX.length());
- log.warn("Setting root log level: {}", levelString);
- Configurator.setRootLevel(org.apache.logging.log4j.Level.toLevel(levelString));
+ log.info("Setting root log level: {}", levelString);
+ Configurator.setRootLevel(Level.toLevel(levelString));
}
@Override
public Set<String> getActionNames() {
return commands;
}
+
+ @API(since = "5.3", status = API.Status.INTERNAL)
+ public static Level getRootLevel() {
+ final LoggerContext loggerContext = LoggerContext.getContext(false);
+ final LoggerConfig loggerConfig = loggerContext.getConfiguration().getRootLogger();
+ return loggerConfig.getLevel();
+ }
}
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java b/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java
index 4ebb954..a7bd559 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java
@@ -47,6 +47,7 @@ import org.apache.jmeter.gui.action.ActionNames;
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.KeyStrokes;
import org.apache.jmeter.gui.action.LoadRecentProject;
+import org.apache.jmeter.gui.action.LogLevelCommand;
import org.apache.jmeter.gui.action.LookAndFeelCommand;
import org.apache.jmeter.gui.plugin.MenuCreator;
import org.apache.jmeter.gui.plugin.MenuCreator.MENU_LOCATION;
@@ -56,9 +57,9 @@ import org.apache.jmeter.util.LocaleChangeListener;
import org.apache.jmeter.util.SSLManager;
import org.apache.jorphan.reflect.ClassFinder;
import org.apache.jorphan.util.JOrphanUtils;
+import org.apache.logging.log4j.Level;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener {
private static final long serialVersionUID = 241L;
@@ -300,12 +301,21 @@ public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener {
JMenu menuLoggerLevel = makeMenuRes("menu_logger_level"); //$NON-NLS-1$
JMenuItem menuItem;
String levelString;
- for (Level level : Level.values()) {
+ // Note: slf4j does not provide a way to set log level, so we use log4j levels here
+ Level currentLevel = LogLevelCommand.getRootLevel();
+ ButtonGroup loggerLevels = new ButtonGroup();
+ Level[] logLevels = Level.values();
+ Arrays.sort(logLevels);
+ for (Level level : logLevels) {
levelString = level.toString();
- menuItem = new JMenuItem(levelString);
+ menuItem = new JRadioButtonMenuItem(levelString);
menuItem.addActionListener(ActionRouter.getInstance());
menuItem.setActionCommand(ActionNames.LOG_LEVEL_PREFIX + levelString);
menuItem.setToolTipText(levelString); // show the classname to the user
+ if (level.equals(currentLevel)) {
+ menuItem.setSelected(true);
+ }
+ loggerLevels.add(menuItem);
menuLoggerLevel.add(menuItem);
}
optionsMenu.add(menuLoggerLevel);
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 3b71c14..18a91b6 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -102,7 +102,9 @@ For instance: log viewer, JSR223 code editor were not previously scaled with zoo
Undo is implemented on a field level basis (each fields has its own history), and the history is
invalidated when tree selection changes.</p>
-<p>Mark the currently selected language in the options menu</p>
+<p>Mark the currently selected language in the options menu.</p>
+
+<p>Mark the currently selected log level in the options menu.</p>
<!--
<ch_title>Functions</ch_title>
-->