Author: jflesch
Date: 2007-09-22 14:04:22 +0000 (Sat, 22 Sep 2007)
New Revision: 15254
Modified:
trunk/apps/Thaw/src/thaw/core/Core.java
trunk/apps/Thaw/src/thaw/core/LogListener.java
trunk/apps/Thaw/src/thaw/core/Logger.java
trunk/apps/Thaw/src/thaw/fcp/FCPMessage.java
trunk/apps/Thaw/src/thaw/plugins/LogConsole.java
trunk/apps/Thaw/src/thaw/plugins/StatusBar.java
trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java
Log:
Make it possible to change log level on the fly in the log console
Modified: trunk/apps/Thaw/src/thaw/core/Core.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Core.java 2007-09-22 13:39:13 UTC (rev
15253)
+++ trunk/apps/Thaw/src/thaw/core/Core.java 2007-09-22 14:04:22 UTC (rev
15254)
@@ -195,7 +195,7 @@
clientHello = new FCPClientHello(queryManager,
config.getValue("thawId"));
if(!clientHello.start(null)) {
- Logger.warning(this, "Id already used !");
+ Logger.warning(this, "Id already used or
timeout !");
subDisconnect();
ret = false;
} else {
Modified: trunk/apps/Thaw/src/thaw/core/LogListener.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/LogListener.java 2007-09-22 13:39:13 UTC
(rev 15253)
+++ trunk/apps/Thaw/src/thaw/core/LogListener.java 2007-09-22 14:04:22 UTC
(rev 15254)
@@ -4,5 +4,6 @@
public interface LogListener {
public void newLogLine(int level, Object src, String line);
+ public void logLevelChanged(int oldLevel, int newLevel);
}
Modified: trunk/apps/Thaw/src/thaw/core/Logger.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/Logger.java 2007-09-22 13:39:13 UTC (rev
15253)
+++ trunk/apps/Thaw/src/thaw/core/Logger.java 2007-09-22 14:04:22 UTC (rev
15254)
@@ -9,8 +9,20 @@
*/
public class Logger {
+ private static int LOG_LEVEL = 2;
- /*
+
+ public final static String[] PREFIXES = new String[] {
+ "[ ERROR ]",
+ "[WARNING]",
+ "[NOTICE ]",
+ "[ INFO ]",
+ "[ DEBUG ]",
+ "[VERBOSE]"
+ };
+
+
+ /**
* 0 = Errors only
* 1 = Errors + warnings
* 2 = Errors + warnings + notices
@@ -19,22 +31,18 @@
* 5 = [...] + horrible things that only God could understand easily.
* (or maybe someone with the FCPv2 specs :)
*
- * 2 or more is recommanded.
+ * 2 or more is recommended.
* 4 or more is unhealthy
*/
- public final static int LOG_LEVEL = 3;
+ public static void setLogLevel(int logLevel) {
+ Logger.notice(null, "Setting verbosity to
"+Integer.toString(logLevel));
+ LOG_LEVEL = logLevel;
+ }
+ public static int getLogLevel() {
+ return LOG_LEVEL;
+ }
- public final static String[] PREFIXES = new String[] {
- "[ ERROR ]",
- "[WARNING]",
- "[NOTICE ]",
- "[ INFO ]",
- "[ DEBUG ]",
- "[VERBOSE]"
- };
-
-
private static Vector logListeners = null;
Modified: trunk/apps/Thaw/src/thaw/fcp/FCPMessage.java
===================================================================
--- trunk/apps/Thaw/src/thaw/fcp/FCPMessage.java 2007-09-22 13:39:13 UTC
(rev 15253)
+++ trunk/apps/Thaw/src/thaw/fcp/FCPMessage.java 2007-09-22 14:04:22 UTC
(rev 15254)
@@ -44,7 +44,6 @@
}
setMessageName(lines[i]);
- Logger.info(this, "Message (Node >> Thaw): "+lines[i]);
for(i++; i < lines.length ; i++) {
/* Empty lines are ignored. */
@@ -62,10 +61,15 @@
setValue(affectation[0], affectation[1]);
}
- if("ProtocolError".equals( getMessageName() )) {
+
+ if("ProtocolError".equals( getMessageName() ))
Logger.warning(this, "PROTOCOL ERROR:\n"+toString());
- }
+ else if (Logger.getLogLevel() <= 3)
+ Logger.info(this, "Message (Node >> Thaw): "+lines[i]);
+ else
+ Logger.debug(this, "Message (Node >> Thaw):
"+toString());
+
return true;
}
Modified: trunk/apps/Thaw/src/thaw/plugins/LogConsole.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-09-22 13:39:13 UTC
(rev 15253)
+++ trunk/apps/Thaw/src/thaw/plugins/LogConsole.java 2007-09-22 14:04:22 UTC
(rev 15254)
@@ -11,6 +11,7 @@
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
+import javax.swing.JComboBox;
import thaw.core.Core;
import thaw.gui.FileChooser;
@@ -37,9 +38,22 @@
private JScrollPane logAreaScrollPane;
private JButton saveToFile;
+ private JComboBox logLevel;
+
private boolean threadRunning;
private boolean hasChanged;
+
+ public final static String[] LOG_LEVEL_NAMES = new String[] {
+ "Errors only",
+ "Errors and warnings",
+ "Errors to notices",
+ "Errors to infos",
+ "Errors to debugs",
+ "Errors to verboses"
+ };
+
+
public LogConsole() {
}
@@ -58,15 +72,27 @@
logArea = new JTextArea();
logArea.setEditable(false);
+
+
+ JPanel southPanel = new JPanel(new BorderLayout(5, 5));
+
+
+ logLevel = new JComboBox(LOG_LEVEL_NAMES);
+ updateLogLevel();
+ logLevel.addActionListener(this);
+ southPanel.add(logLevel, BorderLayout.WEST);
+
saveToFile = new
JButton(I18n.getMessage("thaw.plugin.console.saveToFile"));
-
saveToFile.addActionListener(this);
+ southPanel.add(saveToFile, BorderLayout.CENTER);
+
logAreaScrollPane = new JScrollPane(logArea);
consolePanel.add(logAreaScrollPane, BorderLayout.CENTER);
- consolePanel.add(saveToFile, BorderLayout.SOUTH);
+ consolePanel.add(southPanel, BorderLayout.SOUTH);
+
core.getMainWindow().addTab(I18n.getMessage("thaw.plugin.console.console"),
thaw.gui.IconBox.terminal,
consolePanel);
@@ -91,8 +117,18 @@
}
+ public void updateLogLevel() {
+ logLevel.setSelectedIndex(Logger.getLogLevel());
+ }
+
+
public void actionPerformed(final ActionEvent e) {
- if(e.getSource() == saveToFile) {
+ if (e.getSource() == logLevel) {
+
+ if (Logger.getLogLevel() !=
logLevel.getSelectedIndex()) /* to avoid loops */
+ Logger.setLogLevel(logLevel.getSelectedIndex());
+
+ } else if(e.getSource() == saveToFile) {
final FileChooser fileChooser = new FileChooser();
fileChooser.setTitle(I18n.getMessage("thaw.plugin.console.console"));
@@ -146,7 +182,11 @@
addLine(Logger.PREFIXES[level] + " "+line+"\n");
}
+ public void logLevelChanged(int oldLevel, int newLevel) {
+ updateLogLevel();
+ }
+
public void addLine(String line) {
buffer[writeOffset] = line;
@@ -190,8 +230,6 @@
}
});
-
-
//logAreaScrollPane.getVerticalScrollBar().setValue(logAreaScrollPane.getVerticalScrollBar().getMaximum());
}
Modified: trunk/apps/Thaw/src/thaw/plugins/StatusBar.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/StatusBar.java 2007-09-22 13:39:13 UTC
(rev 15253)
+++ trunk/apps/Thaw/src/thaw/plugins/StatusBar.java 2007-09-22 14:04:22 UTC
(rev 15254)
@@ -79,7 +79,9 @@
}
}
+ public void logLevelChanged(int oldLevel, int newLevel) { }
+
public void updateStatusBar() {
if (core.isReconnecting()) {
Modified: trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-09-22 13:39:13 UTC
(rev 15253)
+++ trunk/apps/Thaw/src/thaw/plugins/TrayIcon.java 2007-09-22 14:04:22 UTC
(rev 15254)
@@ -161,7 +161,9 @@
popMessage("Thaw : "+Logger.PREFIXES[level], line, msgType);
}
+ public void logLevelChanged(int oldLevel, int newLevel) { }
+
public String getNameForUser() {
return I18n.getMessage("thaw.plugin.trayIcon.pluginName");
}