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

📄 patternparser.java

📁 log4j的源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'F':      pc = new LocationPatternConverter(formattingInfo,					FILE_LOCATION_CONVERTER);      //LogLog.debug("File name converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'l':      pc = new LocationPatternConverter(formattingInfo,					FULL_LOCATION_CONVERTER);      //LogLog.debug("Location converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'L':      pc = new LocationPatternConverter(formattingInfo,					LINE_LOCATION_CONVERTER);      //LogLog.debug("LINE NUMBER converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'm':      pc = new BasicPatternConverter(formattingInfo, MESSAGE_CONVERTER);      //LogLog.debug("MESSAGE converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'M':      pc = new LocationPatternConverter(formattingInfo,					METHOD_LOCATION_CONVERTER);      //LogLog.debug("METHOD converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'p':      pc = new BasicPatternConverter(formattingInfo, LEVEL_CONVERTER);      //LogLog.debug("LEVEL converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 'r':      pc = new BasicPatternConverter(formattingInfo,					 RELATIVE_TIME_CONVERTER);      //LogLog.debug("RELATIVE time converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;    case 't':      pc = new BasicPatternConverter(formattingInfo, THREAD_CONVERTER);      //LogLog.debug("THREAD converter.");      //formattingInfo.dump();      currentLiteral.setLength(0);      break;      /*case 'u':      if(i < patternLength) {	char cNext = pattern.charAt(i);	if(cNext >= '0' && cNext <= '9') {	  pc = new UserFieldPatternConverter(formattingInfo, cNext - '0');	  LogLog.debug("USER converter ["+cNext+"].");	  formattingInfo.dump();	  currentLiteral.setLength(0);	  i++;	}	else	  LogLog.error("Unexpected char" +cNext+" at position "+i);      }      break;*/    case 'x':      pc = new BasicPatternConverter(formattingInfo, NDC_CONVERTER);      //LogLog.debug("NDC converter.");      currentLiteral.setLength(0);      break;    case 'X':      String xOpt = extractOption();      pc = new MDCPatternConverter(formattingInfo, xOpt);      currentLiteral.setLength(0);      break;    default:      LogLog.error("Unexpected char [" +c+"] at position "+i		   +" in conversion patterrn.");      pc = new LiteralPatternConverter(currentLiteral.toString());      currentLiteral.setLength(0);    }    addConverter(pc);  }  protected  void addConverter(PatternConverter pc) {    currentLiteral.setLength(0);    // Add the pattern converter to the list.    addToList(pc);    // Next pattern is assumed to be a literal.    state = LITERAL_STATE;    // Reset formatting info    formattingInfo.reset();  }  // ---------------------------------------------------------------------  //                      PatternConverters  // ---------------------------------------------------------------------  private static class BasicPatternConverter extends PatternConverter {    int type;    BasicPatternConverter(FormattingInfo formattingInfo, int type) {      super(formattingInfo);      this.type = type;    }    public    String convert(LoggingEvent event) {      switch(type) {      case RELATIVE_TIME_CONVERTER:	return (Long.toString(event.timeStamp - LoggingEvent.getStartTime()));      case THREAD_CONVERTER:	return event.getThreadName();      case LEVEL_CONVERTER:	return event.getLevel().toString();      case NDC_CONVERTER:	return event.getNDC();      case MESSAGE_CONVERTER: {	return event.getRenderedMessage();      }      default: return null;      }    }  }  private static class LiteralPatternConverter extends PatternConverter {    private String literal;    LiteralPatternConverter(String value) {      literal = value;    }    public    final    void format(StringBuffer sbuf, LoggingEvent event) {      sbuf.append(literal);    }    public    String convert(LoggingEvent event) {      return literal;    }  }  private static class DatePatternConverter extends PatternConverter {    private DateFormat df;    private Date date;    DatePatternConverter(FormattingInfo formattingInfo, DateFormat df) {      super(formattingInfo);      date = new Date();      this.df = df;    }    public    String convert(LoggingEvent event) {      date.setTime(event.timeStamp);      String converted = null;      try {        converted = df.format(date);      }      catch (Exception ex) {        LogLog.error("Error occured while converting date.", ex);      }      return converted;    }  }  private static class MDCPatternConverter extends PatternConverter {    private String key;    MDCPatternConverter(FormattingInfo formattingInfo, String key) {      super(formattingInfo);      this.key = key;    }    public    String convert(LoggingEvent event) {      Object val = event.getMDC(key);      if(val == null) {	return null;      } else {	return val.toString();      }    }  }  private class LocationPatternConverter extends PatternConverter {    int type;    LocationPatternConverter(FormattingInfo formattingInfo, int type) {      super(formattingInfo);      this.type = type;    }    public    String convert(LoggingEvent event) {      LocationInfo locationInfo = event.getLocationInformation();      switch(type) {      case FULL_LOCATION_CONVERTER:	return locationInfo.fullInfo;      case METHOD_LOCATION_CONVERTER:	return locationInfo.getMethodName();      case LINE_LOCATION_CONVERTER:	return locationInfo.getLineNumber();      case FILE_LOCATION_CONVERTER:	return locationInfo.getFileName();      default: return null;      }    }  }  private static abstract class NamedPatternConverter extends PatternConverter {    int precision;    NamedPatternConverter(FormattingInfo formattingInfo, int precision) {      super(formattingInfo);      this.precision =  precision;    }    abstract    String getFullyQualifiedName(LoggingEvent event);    public    String convert(LoggingEvent event) {      String n = getFullyQualifiedName(event);      if(precision <= 0)	return n;      else {	int len = n.length();	// We substract 1 from 'len' when assigning to 'end' to avoid out of	// bounds exception in return r.substring(end+1, len). This can happen if	// precision is 1 and the category name ends with a dot.	int end = len -1 ;	for(int i = precision; i > 0; i--) {	  end = n.lastIndexOf('.', end-1);	  if(end == -1)	    return n;	}	return n.substring(end+1, len);      }    }  }  private class ClassNamePatternConverter extends NamedPatternConverter {    ClassNamePatternConverter(FormattingInfo formattingInfo, int precision) {      super(formattingInfo, precision);    }    String getFullyQualifiedName(LoggingEvent event) {      return event.getLocationInformation().getClassName();    }  }  private class CategoryPatternConverter extends NamedPatternConverter {    CategoryPatternConverter(FormattingInfo formattingInfo, int precision) {      super(formattingInfo, precision);    }    String getFullyQualifiedName(LoggingEvent event) {      return event.getLoggerName();    }  }}

⌨️ 快捷键说明

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