⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log4jrequesthandler.java

📁 实现在电脑平台上控制短信modem或手机进行通讯的jar包和相关实例
💻 JAVA
字号:
package com.psibt.framework.net;import java.io.*;import java.net.*;import java.util.*;import org.apache.log4j.*;/** * This class implements a RequestHandler for log4j configuration. It serves the "/log4j/" path * in the PluggableHTTPServer. If this path is requested a list of all current log4j categories * with their current priorities is created. All priority settings can be changed by the user * and can be submitted and taken over. * * @author <a HREF="mailto:V.Mentzner@psi-bt.de">Volker Mentzner</a> */public class Log4jRequestHandler extends RootRequestHandler {  private Priority[] prios = Priority.getAllPossiblePriorities(); /**   * Creates a new Log4jRequestHandler object   */  public Log4jRequestHandler() {    this.setTitle("log4j");    this.setDescription("log4j configuration");    this.setHandledPath("/log4j/");  } /**   * Handles the given request and writes the reply to the given out-stream.   *   * @param request - client browser request   * @param out - Out stream for sending data to client browser   * @return if the request was handled by this handler : true, else : false   */  public boolean handleRequest(String request, Writer out) {    String path = "";    String query = null;    String name;    try {      // check request url      URL url = new URL("http://localhost"+request);      path = url.getPath();      query = url.getQuery();      if (path.startsWith(this.getHandledPath()) == false) {        return false;      }      out.write("HTTP/1.0 200 OK\r\n");      out.write("Content-type: text/html\r\n\r\n");      out.write("<HTML><HEAD><TITLE>" + this.getTitle() + "</TITLE></HEAD>\r\n");      out.write("<BODY><H1>log4j</H1>\r\n");      out.write(this.getDescription() + "<br><br>\r\n");      // handle a request with query      if ((query != null) && (query.length() >= 0)) {        StringTokenizer st = new StringTokenizer(query, "&");        String cmd;        String catname;        String catval;        int idx;        while (st.hasMoreTokens()) {          cmd = st.nextToken();          idx = cmd.indexOf("=");          catname = cmd.substring(0, idx);          catval = cmd.substring(idx+1, cmd.length());          if (catname.equalsIgnoreCase("root"))            Category.getRoot().setPriority(Priority.toPriority(catval));          else            Category.getInstance(catname).setPriority(Priority.toPriority(catval));        }      }      // output category information in a form with a simple table      out.write("<form name=\"Formular\" ACTION=\""+this.getHandledPath()+"\" METHOD=\"PUT\">");      out.write("<table cellpadding=4>\r\n");      out.write(" <tr>\r\n");      out.write("  <td><b>Category</b></td>\r\n");      out.write("  <td><b>Priority</b></td>\r\n");      out.write("  <td><b>Appender</b></td>\r\n");      out.write(" </tr>\r\n");      // output for root category      Category cat = Category.getRoot();      out.write(" <tr><td>root</td>\r\n");      out.write("  <td>\r\n");      out.write("   <select size=1 name=\""+ cat.getName() +"\">");      for (int i = 0; i < prios.length; i++) {        if (cat.getChainedPriority().toString().equals(prios[i].toString()))          out.write("<option selected>"+prios[i].toString());        else          out.write("<option>"+prios[i].toString());      }      out.write("</select>\r\n");      out.write("  </td>\r\n");      out.write("  <td>\r\n");      for (Enumeration apds = cat.getAllAppenders(); apds.hasMoreElements();) {        Appender apd = (Appender)apds.nextElement();        name = apd.getName();        if (name == null)          name = "<i>(no name)</i>";        out.write(name);        if (apd instanceof AppenderSkeleton) {          try {            AppenderSkeleton apskel = (AppenderSkeleton)apd;            out.write(" [" + apskel.getThreshold().toString() + "]");          } catch (Exception ex) {          }        }        if (apds.hasMoreElements())          out.write(",  ");      }      out.write("  </td>\r\n");      out.write(" </tr>\r\n");      // output for all other categories      for (Enumeration en = Category.getCurrentCategories(); en.hasMoreElements();) {        cat = (Category)en.nextElement();        out.write(" <tr>\r\n");        out.write("  <td>" + cat.getName() + "</td>\r\n");        out.write("  <td>\r\n");        out.write("   <select size=1 name=\""+ cat.getName() +"\">");        for (int i = 0; i < prios.length; i++) {          if (cat.getChainedPriority().toString().equals(prios[i].toString()))            out.write("<option selected>"+prios[i].toString());          else            out.write("<option>"+prios[i].toString());        }        out.write("</select>\r\n");        out.write("  </td>\r\n");        out.write("  <td>\r\n");        for (Enumeration apds = cat.getAllAppenders(); apds.hasMoreElements();) {          Appender apd = (Appender)apds.nextElement();          name = apd.getName();          if (name == null)            name = "<i>(no name)</i>";          out.write(name);          if (apd instanceof AppenderSkeleton) {            try {              AppenderSkeleton apskel = (AppenderSkeleton)apd;              out.write(" [" + apskel.getThreshold().toString() + "]");            } catch (Exception ex) {            }          }          if (apds.hasMoreElements())            out.write(",  ");        }        out.write("  </td>\r\n");        out.write(" </tr>\r\n");      }      out.write("</table>\r\n");      out.write("<input type=submit value=\"Submit\">");      out.write("</form>");      out.write("</BODY></HTML>\r\n");      out.flush();      return true;    } catch (Exception ex) {      return false;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -