コード例 #1
0
ファイル: Logger.java プロジェクト: niuxdexiaobai/biyanzhi
 /**
  * 写日志操作处理方法
  *
  * @param caller 调用者类对象
  * @param msg
  * @param level
  */
 private static void writeLog(Object caller, String msg, Level level) {
   String logTag = "";
   if (caller != null) {
     if (caller instanceof String) {
       logTag = caller.toString();
     } else {
       logTag = caller.getClass().getName();
     }
   }
   if (level.getLevel() < logLevel.getLevel()) {
     return;
   }
   if (!writeFile) {
     return;
   }
   File logFile = checkLogFile(); // 检查日志文件
   if (logFile == null) {
     return;
   }
   /** * 组织日志输入内容 * */
   String writeMsg = "[" + DateUtils.getCurrDateStr() + "] [";
   writeMsg += level.getLevelDescn() + "] ";
   writeMsg += logTag + ": ";
   writeMsg += msg + "\n";
   try {
     FileWriter fw = new FileWriter(logFile, true);
     fw.append(writeMsg);
     fw.close();
   } catch (IOException e) {
     e.printStackTrace();
   }
 }
コード例 #2
0
ファイル: Logger.java プロジェクト: niuxdexiaobai/biyanzhi
 /**
  * 写日志操作处理方法
  *
  * @param caller 调用者类对象
  * @param msg
  * @param level
  */
 private static void outLog(Object caller, String msg, Level level) {
   String logTag = "";
   if (caller != null) {
     if (caller instanceof String) {
       logTag = caller.toString();
     } else {
       logTag = caller.getClass().getName();
     }
   }
   if (level.getLevel() < logLevel.getLevel()) {
     return;
   }
   if (!isOutPut) {
     return;
   }
   /** * 组织输出内容 * */
   String outMsg = "[" + DateUtils.getCurrDateStr() + "] [";
   outMsg += level.getLevelDescn() + "] ";
   outMsg += logTag + ": ";
   outMsg += msg + "\n";
   Utils.print(outMsg);
 }
コード例 #3
0
ファイル: Logger.java プロジェクト: Tanner/Oregon-Trail
  /**
   * Logs a message to a file if the log level given matches the current log level.
   *
   * @param message Message to be logged
   * @param level Level when this should be logged
   */
  public static void log(String message, Level level) {
    // If you try to log at level none, we deny you
    if (level == Level.NONE) return;

    if (level == currentLevel || level.getLevel() < currentLevel.getLevel()) {
      try {
        FileWriter fstream = new FileWriter(file, true);
        BufferedWriter out = new BufferedWriter(fstream);

        Date now = new Date();
        String date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss:SSS z").format(now);

        String output = level.getName() + " - " + date + " - " + message + "\n";

        out.write(output);
        System.out.print(output);

        out.close();
        fstream.close();
      } catch (Exception e) {
        System.err.println("Logger could not log message: " + e.getMessage());
      }
    }
  }
コード例 #4
0
  public void initialize() {
    super.initialize();

    log4JProperties = new Properties();

    Map configuredAppenders = new HashMap();

    if (appenders == null || appenders.size() == 0) {
      if (defaultAppender != null) {
        throw new IllegalArgumentException(
            "A default appender cant be specified without any appenders configured.");
      }

      defaultAppender = "anonymous";

      log4JProperties.setProperty("log4j.appender.anonymous", "org.apache.log4j.ConsoleAppender");

      log4JProperties.setProperty("log4j.appender.anonymous.threshold", getThresholdAsString());

      log4JProperties.setProperty(
          "log4j.appender.anonymous.layout", "org.apache.log4j.PatternLayout");

      log4JProperties.setProperty(
          "log4j.appender.anonymous.layout.conversionPattern", "%-4r [%t] %-5p %c %x - %m%n");
    } else {
      for (int i = 0; i < appenders.size(); i++) {
        Appender appender = (Appender) appenders.get(i);

        String id = appender.getId();

        if (configuredAppenders.containsKey(id)) {
          throw new IllegalArgumentException(
              "There already exists a appender with the id '" + id + "'.");
        }

        if (id == null) {
          throw new IllegalArgumentException("The appender must have a id.");
        }

        if (appender.getThreshold() == null) {
          appender.setThreshold(getThresholdAsString());
        }

        if (appender.getConversionPattern() == null) {
          throw new IllegalArgumentException("The appender must have a conversion pattern.");
        }

        if (appender.getType() == null) {
          throw new IllegalArgumentException("The appender must have a type.");
        }

        try {
          Class.forName(appender.getType());
        } catch (ClassNotFoundException ex) {
          throw new IllegalArgumentException(
              "Could not find the appender class: " + appender.getType(), ex);
        } catch (LinkageError ex) {
          throw new IllegalArgumentException(
              "Could load the appender class: " + appender.getType(), ex);
        }

        String base = "log4j.appender." + id;

        log4JProperties.setProperty(base, appender.getType());

        log4JProperties.setProperty(base + ".threshold", appender.getThreshold());

        log4JProperties.setProperty(base + ".layout", "org.apache.log4j.PatternLayout");

        log4JProperties.setProperty(
            base + ".layout.conversionPattern", appender.getConversionPattern());

        Enumeration e = appender.getProperties().keys();

        while (e.hasMoreElements()) {
          String key = e.nextElement().toString();

          log4JProperties.setProperty(base + "." + key, appender.getProperty(key));

          if ("file".equals(key)) {
            File logFile = new File(appender.getProperty(key));
            File logDir = logFile.getParentFile();

            if (!logDir.exists()) {
              logDir.mkdirs();
            }
          }
        }

        configuredAppenders.put(id, appender);
      }

      if (defaultAppender == null) {
        if (configuredAppenders.size() == 1) {
          defaultAppender = ((Appender) appenders.get(0)).getId();
        } else {
          throw new IllegalArgumentException(
              "A default appender must be specified when having several appenders.");
        }
      } else {
        StringTokenizer tokenizer = new StringTokenizer(defaultAppender, ",");

        while (tokenizer.hasMoreTokens()) {
          String appender = tokenizer.nextToken();

          if (!configuredAppenders.containsKey(appender)) {
            throw new IllegalArgumentException(
                "Could not find the default appender: '" + defaultAppender + "'.");
          }
        }
      }
    }

    if (levels != null && levels.size() > 0) {
      for (Iterator it = levels.iterator(); it.hasNext(); ) {
        Level level = (Level) it.next();

        log4JProperties.put("log4j.logger." + level.getHierarchy(), level.getLevel());
      }
    }

    if (getThresholdAsString() == null) {
      throw new IllegalArgumentException("INTERNAL ERROR: The threshold must be set.");
    }
    if (defaultAppender == null) {
      throw new IllegalArgumentException("INTERNAL ERROR: The default appender must be set.");
    }

    log4JProperties.setProperty("log4j.rootLogger", getThresholdAsString() + "," + defaultAppender);
  }