mwomack 2003/02/19 23:45:36
Modified: src/java/org/apache/log4j/servlet ConfigurationServlet.java
Log:
Jalopy-ized and checkstyle-d version.
Revision Changes Path
1.2 +260 -234
jakarta-log4j-sandbox/src/java/org/apache/log4j/servlet/ConfigurationServlet.java
Index: ConfigurationServlet.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/servlet/ConfigurationServlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ConfigurationServlet.java 4 Feb 2003 06:28:16 -0000 1.1
+++ ConfigurationServlet.java 20 Feb 2003 07:45:36 -0000 1.2
@@ -3,11 +3,14 @@
*
* This software is published under the terms of the Apache Software
* License version 1.1, a copy of which has been included with this
- * distribution in the LICENSE.txt file.
+ * distribution in the LICENSE.txt file.
*/
-
package org.apache.log4j.servlet;
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+
import java.io.IOException;
import java.io.PrintWriter;
@@ -24,261 +27,284 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.log4j.Logger;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Level;
-
/**
* A servlet used to dynamically adjust package logging levels
- * while an application is running. NOTE: This servlet is
- * only aware of pre-configured packages and packages that contain objects
+ * while an application is running. NOTE: This servlet is
+ * only aware of pre-configured packages and packages that contain objects
* that have logged at least one message since application startup.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Luther E. Birdzell</a>
* @since 1.3
*/
-public class ConfigurationServlet extends HttpServlet implements SingleThreadModel
-{
- /**
- * The response content type: text/html
- */
- public static final String CONTENT_TYPE = "text/html";
+public class ConfigurationServlet extends HttpServlet
+ implements SingleThreadModel {
+ /**
+ * The response content type: text/html
+ */
+ public static final String CONTENT_TYPE = "text/html";
+
+ /**
+ * The root appender.
+ */
+ public static final String ROOT = "Root";
+
+ /**
+ * The name of the class / package.
+ */
+ public static final String CLASS = "CLASS";
+
+ /**
+ * The logging level.
+ */
+ public static final String PRIORITY = "PRIORITY";
+
+ /**
+ * Print the status of all current <code>Logger</code>s and
+ * an option to change their respective logging levels.
+ *
+ * @param request a <code>HttpServletRequest</code> value
+ * @param response a <code>HttpServletResponse</code> value
+ * @exception ServletException if an error occurs
+ * @exception IOException if an error occurs
+ */
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setContentType(CONTENT_TYPE);
+
+ PrintWriter out = response.getWriter();
+ List loggers = getSortedLoggers();
+ Logger logger = null;
+ String loggerName = null;
+ int loggerNum = 0;
+
+ // print title and header
+ out.println(
+ "<html><head><title>Log4J Control Console</title></head>"
+ + "<body><H3>Log4J Control Console</H3>");
+ out.println("<A href=\"" + request.getRequestURI() + "\">Refresh</A><HR>");
+ out.println("<table width=\"50%\" border=\"1\">");
+ out.println("<tr BGCOLOR=\"#5991A6\">");
+ out.println(
+ "<td><FONT COLOR=\"BLACK\" FACE=\"Helvetica\"><B>Class</B></FONT></td>");
+ out.print(
+ "<td><FONT COLOR=\"BLACK\" FACE=\"Helvetica\"><B>Priority</B></FONT>");
+ out.println("</td>");
+ out.println("</tr>");
- /**
- * The root appender.
- */
- public static final String ROOT = "Root";
+ // print the root Logger
+ displayLogger(out, Logger.getRootLogger(), loggerNum++, request);
- /**
- * The name of the class / package.
- */
- public static final String CLASS = "CLASS";
-
- /**
- * The logging level.
- */
- public static final String PRIORITY = "PRIORITY";
+ // print the rest of the loggers
+ Iterator ii = loggers.iterator();
- /**
- * Print the status of all current <code>Logger</code>s and
- * an option to change their respective logging levels.
- *
- * @param request a <code>HttpServletRequest</code> value
- * @param response a <code>HttpServletResponse</code> value
- * @exception ServletException if an error occurs
- * @exception IOException if an error occurs
- */
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException
- {
- response.setContentType(CONTENT_TYPE);
-
- PrintWriter out = response.getWriter();
- List loggers = getSortedLoggers();
- Logger logger = null;
- String loggerName = null;
- int loggerNum = 0;
-
- // print title and header
- out.println("<html><head><title>Log4J Control Console</title></head>" +
- "<body><H3>Log4J Control Console</H3>");
- out.println("<A href=\"" + request.getRequestURI() + "\">Refresh</A><HR>");
- out.println("<table width=\"50%\" border=\"1\">");
- out.println("<tr BGCOLOR=\"#5991A6\">");
- out.println("<td><FONT COLOR=\"BLACK\"
FACE=\"Helvetica\"><B>Class</B></FONT></td>");
- out.println("<td><FONT COLOR=\"BLACK\"
FACE=\"Helvetica\"><B>Priority</B></FONT></td>");
- out.println("</tr>");
-
- // print the root Logger
- displayLogger(out, Logger.getRootLogger(), loggerNum++, request);
-
- // print the rest of the loggers
- Iterator ii = loggers.iterator();
- while( ii.hasNext() )
- {
- displayLogger(out, (Logger) ii.next(), loggerNum++, request);
- }
-
- out.println("</table>");
- out.println("<FONT SIZE=\"-3\" COLOR=\"BLACK\" FACE=\"Helvetica\">* "+
- "Inherits Priority From Parent.</FONT><BR>");
- out.println("<A href=\"" + request.getRequestURI() + "\">Refresh</A><HR>");
-
- // print set options
- out.println("<FORM action=\"" + request.getRequestURI() + "\"
method=\"post\">");
- out.println("<FONT SIZE=\"+2\" COLOR=\"BLACK\" FACE=\"Helvetica\"><U>"+
- "Set Log4J Option</U><BR><BR></FONT>");
- out.println("<FONT COLOR=\"BLACK\" FACE=\"Helvetica\">");
- out.println("<table width=\"50%\" border=\"1\">");
- out.println("<tr BGCOLOR=\"#5991A6\">");
- out.println("<td><FONT COLOR=\"BLACK\" "+
- "FACE=\"Helvetica\"><B>Class Name:</B></FONT></td>");
- out.println("<td><SELECT name=\"CLASS\">");
- out.println("<OPTION VALUE=\"" + ROOT + "\">" + ROOT + "</OPTION>");
-
- ii = loggers.iterator();
- while( ii.hasNext() )
- {
- logger = (Logger) ii.next();
- loggerName = (logger.getName().equals("") ? "Root" : logger.getName());
- out.println("<OPTION VALUE=\"" + loggerName + "\">" + loggerName +
"</OPTION>");
- }
- out.println("</SELECT><BR></td></tr>");
-
- // print logging levels
- out.println("<tr BGCOLOR=\"#5991A6\"><td><FONT COLOR=\"BLACK\" "+
- "FACE=\"Helvetica\"><B>Priority:</B></FONT></td>");
- out.println("<td><SELECT name=\"PRIORITY\">");
- out.println("<OPTION VALUE=\"" + Level.OFF + "\">" + Level.OFF +
"</OPTION>");
- out.println("<OPTION VALUE=\"" + Level.FATAL + "\">" + Level.FATAL +
"</OPTION>");
- out.println("<OPTION VALUE=\"" + Level.ERROR + "\">" + Level.ERROR +
"</OPTION>");
- out.println("<OPTION VALUE=\"" + Level.WARN + "\">" + Level.WARN +
"</OPTION>");
- out.println("<OPTION VALUE=\"" + Level.INFO + "\">" + Level.INFO +
"</OPTION>");
- out.println("<OPTION VALUE=\"" + Level.DEBUG + "\">" + Level.DEBUG +
"</OPTION>");
- out.println("<OPTION VALUE=\"" + Level.ALL + "\">" + Level.ALL +
"</OPTION>");
- out.println("</SELECT><BR></td></tr>");
- out.println("</table></FONT>");
- out.println("<input type=\"submit\" name=\"Submit\" value=\"Set
Option\"></FONT>");
- out.println("</FORM>");
- out.println("</body></html>");
+ while (ii.hasNext()) {
+ displayLogger(out, (Logger) ii.next(), loggerNum++, request);
+ }
- out.flush();
- out.close();
+ out.println("</table>");
+ out.println(
+ "<FONT SIZE=\"-3\" COLOR=\"BLACK\" FACE=\"Helvetica\">* "
+ + "Inherits Priority From Parent.</FONT><BR>");
+ out.println("<A href=\"" + request.getRequestURI() + "\">Refresh</A><HR>");
+
+ // print set options
+ out.println(
+ "<FORM action=\"" + request.getRequestURI() + "\" method=\"post\">");
+ out.println(
+ "<FONT SIZE=\"+2\" COLOR=\"BLACK\" FACE=\"Helvetica\"><U>"
+ + "Set Log4J Option</U><BR><BR></FONT>");
+ out.println("<FONT COLOR=\"BLACK\" FACE=\"Helvetica\">");
+ out.println("<table width=\"50%\" border=\"1\">");
+ out.println("<tr BGCOLOR=\"#5991A6\">");
+ out.println(
+ "<td><FONT COLOR=\"BLACK\" "
+ + "FACE=\"Helvetica\"><B>Class Name:</B></FONT></td>");
+ out.println("<td><SELECT name=\"CLASS\">");
+ out.println("<OPTION VALUE=\"" + ROOT + "\">" + ROOT + "</OPTION>");
+
+ ii = loggers.iterator();
+
+ while (ii.hasNext()) {
+ logger = (Logger) ii.next();
+ loggerName = (logger.getName().equals("") ? "Root" : logger.getName());
+ out.println(
+ "<OPTION VALUE=\"" + loggerName + "\">" + loggerName + "</OPTION>");
}
- /**
- * Change a <code>Logger</code>'s level, then call <code>doGet</code>
- * to refresh the page.
- *
- * @param request a <code>HttpServletRequest</code> value
- * @param response a <code>HttpServletResponse</code> value
- * @exception ServletException if an error occurs
- * @exception java.io.IOException if an error occurs
- */
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException
- {
- String className = (String) request.getParameter(CLASS);
- String priority = (String) request.getParameter(PRIORITY);
-
- if (className != null)
- {
- setClass(className, priority);
- }
-
- doGet(request, response);
+ out.println("</SELECT><BR></td></tr>");
+
+ // print logging levels
+ out.println(
+ "<tr BGCOLOR=\"#5991A6\"><td><FONT COLOR=\"BLACK\" "
+ + "FACE=\"Helvetica\"><B>Priority:</B></FONT></td>");
+ out.println("<td><SELECT name=\"PRIORITY\">");
+ out.println(
+ "<OPTION VALUE=\"" + Level.OFF + "\">" + Level.OFF + "</OPTION>");
+ out.println(
+ "<OPTION VALUE=\"" + Level.FATAL + "\">" + Level.FATAL + "</OPTION>");
+ out.println(
+ "<OPTION VALUE=\"" + Level.ERROR + "\">" + Level.ERROR + "</OPTION>");
+ out.println(
+ "<OPTION VALUE=\"" + Level.WARN + "\">" + Level.WARN + "</OPTION>");
+ out.println(
+ "<OPTION VALUE=\"" + Level.INFO + "\">" + Level.INFO + "</OPTION>");
+ out.println(
+ "<OPTION VALUE=\"" + Level.DEBUG + "\">" + Level.DEBUG + "</OPTION>");
+ out.println(
+ "<OPTION VALUE=\"" + Level.ALL + "\">" + Level.ALL + "</OPTION>");
+ out.println("</SELECT><BR></td></tr>");
+ out.println("</table></FONT>");
+ out.println(
+ "<input type=\"submit\" name=\"Submit\" value=\"Set Option\"></FONT>");
+ out.println("</FORM>");
+ out.println("</body></html>");
+
+ out.flush();
+ out.close();
+ }
+
+ /**
+ * Change a <code>Logger</code>'s level, then call <code>doGet</code>
+ * to refresh the page.
+ *
+ * @param request a <code>HttpServletRequest</code> value
+ * @param response a <code>HttpServletResponse</code> value
+ * @exception ServletException if an error occurs
+ * @exception IOException if an error occurs
+ */
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ String className = (String) request.getParameter(CLASS);
+ String priority = (String) request.getParameter(PRIORITY);
+
+ if (className != null) {
+ setClass(className, priority);
}
- // print a Logger and its current level
- private void displayLogger(PrintWriter out, Logger logger,
- int row, HttpServletRequest request)
- {
- String color = null;
- String loggerName = (logger.getName().equals("") ? ROOT : logger.getName());
-
- color = (row%2 == 1) ? "#E1E1E1" : "#FBFBFB";
-
- out.println("<tr BGCOLOR=\"" + color + "\">");
- out.println("<td><FONT SIZE=\"-2\" COLOR=\"BLACK\" FACE=\"Helvetica\">" +
- loggerName + "</FONT></td>");
- out.println("<td><FONT SIZE=\"-2\" COLOR=\"BLACK\" FACE=\"Helvetica\">" +
- ( (logger.getLevel() == null) ?
logger.getEffectiveLevel().toString() +
- "*" : logger.getLevel().toString()) + "</FONT></td>");
- out.println("</tr>");
+ doGet(request, response);
+ }
+
+ /**
+ Print a Logger and its current level.
+
+ @param out the output writer.
+ @param logger the logger to output.
+ @param row the row number in the table this logger will appear in.
+ @param request the servlet request. */
+ private void displayLogger(
+ PrintWriter out, Logger logger, int row, HttpServletRequest request) {
+ String color = null;
+ String loggerName =
+ (logger.getName().equals("") ? ROOT : logger.getName());
+
+ color = ((row % 2) == 1) ? "#E1E1E1" : "#FBFBFB";
+
+ out.println("<tr BGCOLOR=\"" + color + "\">");
+ out.println(
+ "<td><FONT SIZE=\"-2\" COLOR=\"BLACK\" FACE=\"Helvetica\">" + loggerName
+ + "</FONT></td>");
+ out.println(
+ "<td><FONT SIZE=\"-2\" COLOR=\"BLACK\" FACE=\"Helvetica\">"
+ + ((logger.getLevel() == null)
+ ? (logger.getEffectiveLevel().toString() + "*")
+ : logger.getLevel().toString()) + "</FONT></td>");
+ out.println("</tr>");
+ }
+
+ /**
+ Set a logger's level.
+
+ @param className class name of the logger to set.
+ @param level the level to set the logger to.
+ @return String return message for display. */
+ private synchronized String setClass(String className, String level) {
+ Logger logger = null;
+ String message = null;
+
+ try {
+ logger =
+ (className.equals(ROOT)) ? logger.getRootLogger()
+ : logger.getLogger(className);
+
+ logger.setLevel(Level.toLevel(level));
+ } catch (Exception e) {
+ System.out.println("ERROR Setting LOG4J Logger:" + e);
}
-
- // set a logger's level
- private synchronized String setClass(String className, String level)
- {
- Logger logger = null;
- String message = null;
-
- try
- {
- logger = (className.equals(ROOT)) ? logger.getRootLogger() :
- logger.getLogger(className);
-
- logger.setLevel(Level.toLevel(level));
- }
-
- catch (Exception e)
- {
- System.out.println("ERROR Setting LOG4J Logger:" + e);
- }
-
- return "Message Set For " + (logger.getName().equals("") ? ROOT :
logger.getName());
+
+ return "Message Set For "
+ + (logger.getName().equals("") ? ROOT : logger.getName());
+ }
+
+ /**
+ Get a sorted list of all current loggers.
+
+ @return List the list of sorted loggers. */
+ private List getSortedLoggers() {
+ Logger logger = null;
+ Enumeration enum = LogManager.getCurrentLoggers();
+ Comparator comp = new LoggerComparator();
+ ArrayList list = new ArrayList();
+
+ // Add all current loggers to the list
+ while (enum.hasMoreElements()) {
+ list.add(enum.nextElement());
}
- // get a sorted list of all current loggers
- private List getSortedLoggers()
- {
- Logger logger = null;
- Enumeration enum = LogManager.getCurrentLoggers();
- Comparator comp = new LoggerComparator();
- ArrayList list = new ArrayList();
-
- // Add all current loggers to the list
- while(enum.hasMoreElements())
- {
- list.add(enum.nextElement());
- }
-
- // sort the loggers
- Collections.sort(list, comp);
-
- return list;
+ // sort the loggers
+ Collections.sort(list, comp);
+
+ return list;
+ }
+
+ /**
+ * Compare the names of two <code>Logger</code>s. Used
+ * for sorting.
+ */
+ private class LoggerComparator implements Comparator {
+ /**
+ * Compare the names of two <code>Logger</code>s.
+ *
+ * @param o1 an <code>Object</code> value
+ * @param o2 an <code>Object</code> value
+ * @return an <code>int</code> value
+ */
+ public int compare(Object o1, Object o2) {
+ Logger logger1 = (Logger) o1;
+ Logger logger2 = (Logger) o2;
+ ;
+
+ String logger1Name = null;
+ String logger2Name = null;
+
+ if (logger1 != null) {
+ logger1Name = (logger1.getName().equals("") ? ROOT : logger1.getName());
+ }
+
+ if (logger2 != null) {
+ logger2Name = (logger2.getName().equals("") ? ROOT : logger2.getName());
+ }
+
+ return logger1Name.compareTo(logger2Name);
}
/**
- * Compare the names of two <code>Logger</code>s. Used
- * for sorting.
+ * Return <code>true</code> if the <code>Object</code> is a
+ * <code>LoggerComparator</code> instance.
+ *
+ *
+ * @param o an <code>Object</code> value
+ * @return a <code>boolean</code> value
*/
- private class LoggerComparator implements Comparator
- {
-
- /**
- * Compare the names of two <code>Logger</code>s.
- *
- * @param o1 an <code>Object</code> value
- * @param o2 an <code>Object</code> value
- * @return an <code>int</code> value
- */
- public int compare(Object o1, Object o2)
- {
- Logger logger1 = (Logger) o1;
- Logger logger2 = (Logger) o2;;
-
- String logger1Name = null;
- String logger2Name = null;
-
- if ( logger1 != null )
- logger1Name = (logger1.getName().equals("") ? ROOT :
logger1.getName());
-
- if ( logger2 != null )
- logger2Name = (logger2.getName().equals("") ? ROOT :
logger2.getName());
-
- return logger1Name.compareTo(logger2Name);
- }
-
- /**
- * Return <code>true</code> if the <code>Object</code> is a
- * <code>LoggerComparator</code> instance.
- *
- *
- * @param o an <code>Object</code> value
- * @return a <code>boolean</code> value
- */
- public boolean equals(Object o)
- {
-
- if (o instanceof LoggerComparator)
- return true;
-
- else
- return false;
- }
+ public boolean equals(Object o) {
+ if (o instanceof LoggerComparator) {
+ return true;
+ } else {
+ return false;
+ }
}
+ }
+}
-}//EOF
+//EOF
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]