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

📄 logger.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
  /**   * Returns the severity level threshold for this <code>Handler</code>.   * All log records with a lower severity level will be discarded;   * a log record of the same or a higher level will be published   * unless an installed <code>Filter</code> decides to discard it.   *   * @return the severity level below which all log messages will be   *         discarded, or <code>null</code> if the logger inherits   *         the threshold from its parent.   */  public synchronized Level getLevel()  {    return level;  }  /**   * Returns whether or not a message of the specified level   * would be logged by this logger.   *   * @throws NullPointerException if <code>level</code>   *         is <code>null</code>.   */  public synchronized boolean isLoggable(Level level)  {    if (this.level != null)      return this.level.intValue() <= level.intValue();    if (parent != null)      return parent.isLoggable(level);    else      return false;  }  /**   * Sets the severity level threshold for this <code>Handler</code>.   * All log records with a lower severity level will be discarded   * immediately.  A log record of the same or a higher level will be   * published unless an installed <code>Filter</code> decides to   * discard it.   *   * @param level the severity level below which all log messages   *              will be discarded, or <code>null</code> to   *              indicate that the logger should inherit the   *              threshold from its parent.   *   * @throws SecurityException if this logger is not anonymous, a   *     security manager exists, and the caller is not granted   *     the permission to control the logging infrastructure by   *     having LoggingPermission("control").  Untrusted code can   *     obtain an anonymous logger through the static factory method   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.   */  public synchronized void setLevel(Level level)  {    /* An application is allowed to control an anonymous logger     * without having the permission to control the logging     * infrastructure.     */    if (!anonymous)      LogManager.getLogManager().checkAccess();    this.level = level;  }  public synchronized Filter getFilter()  {    return filter;  }  /**   * @throws SecurityException if this logger is not anonymous, a   *     security manager exists, and the caller is not granted   *     the permission to control the logging infrastructure by   *     having LoggingPermission("control").  Untrusted code can   *     obtain an anonymous logger through the static factory method   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.   */  public synchronized void setFilter(Filter filter)    throws SecurityException  {    /* An application is allowed to control an anonymous logger     * without having the permission to control the logging     * infrastructure.     */    if (!anonymous)      LogManager.getLogManager().checkAccess();    this.filter = filter;  }  /**   * Returns the name of this logger.   *   * @return the name of this logger, or <code>null</code> if   *         the logger is anonymous.   */  public String getName()  {    /* Note that the name of a logger cannot be changed during     * its lifetime, so no synchronization is needed.     */    return name;  }  /**   * Passes a record to registered handlers, provided the record   * is considered as loggable both by {@link #isLoggable(Level)}   * and a possibly installed custom {@link #setFilter(Filter) filter}.   *   * <p>If the logger has been configured to use parent handlers,   * the record will be forwarded to the parent of this logger   * in addition to being processed by the handlers registered with   * this logger.   *   * <p>The other logging methods in this class are convenience methods   * that merely create a new LogRecord and pass it to this method.   * Therefore, subclasses usually just need to override this single   * method for customizing the logging behavior.   *   * @param record the log record to be inspected and possibly forwarded.   */  public synchronized void log(LogRecord record)  {    if (!isLoggable(record.getLevel()))      return;    if ((filter != null) && !filter.isLoggable(record))      return;    /* If no logger name has been set for the log record,     * use the name of this logger.     */    if (record.getLoggerName() == null)      record.setLoggerName(name);    /* Avoid that some other thread is changing the logger hierarchy     * while we are traversing it.     */    synchronized (LogManager.getLogManager())    {      Logger curLogger = this;      do      {        /* The Sun J2SE 1.4 reference implementation seems to call the	 * filter only for the logger whose log method is called,	 * never for any of its parents.  Also, parent loggers publish	 * log record whatever their level might be.  This is pretty	 * weird, but GNU Classpath tries to be as compatible as	 * possible to the reference implementation.	 */        for (int i = 0; i < curLogger.handlers.length; i++)          curLogger.handlers[i].publish(record);	if (curLogger.getUseParentHandlers() == false)	  break;		curLogger = curLogger.getParent();      }      while (parent != null);    }  }  public void log(Level level, String message)  {    if (isLoggable(level))      log(level, message, (Object[]) null);  }  public synchronized void log(Level level,			       String message,			       Object param)  {    if (isLoggable(level))      {        StackTraceElement caller = getCallerStackFrame();        logp(level,             caller != null ? caller.getClassName() : "<unknown>",             caller != null ? caller.getMethodName() : "<unknown>",             message,             param);      }  }  public synchronized void log(Level level,			       String message,			       Object[] params)  {    if (isLoggable(level))      {        StackTraceElement caller = getCallerStackFrame();        logp(level,             caller != null ? caller.getClassName() : "<unknown>",             caller != null ? caller.getMethodName() : "<unknown>",             message,             params);      }  }  public synchronized void log(Level level,			       String message,			       Throwable thrown)  {    if (isLoggable(level))      {        StackTraceElement caller = getCallerStackFrame();            logp(level,             caller != null ? caller.getClassName() : "<unknown>",             caller != null ? caller.getMethodName() : "<unknown>",             message,             thrown);      }  }  public synchronized void logp(Level level,				String sourceClass,				String sourceMethod,				String message)  {    logp(level, sourceClass, sourceMethod, message,	 (Object[]) null);  }  public synchronized void logp(Level level,				String sourceClass,				String sourceMethod,				String message,				Object param)  {    logp(level, sourceClass, sourceMethod, message,	 new Object[] { param });  }  private synchronized ResourceBundle findResourceBundle()  {    if (resourceBundle != null)      return resourceBundle;    if (parent != null)      return parent.findResourceBundle();    return null;  }  private synchronized void logImpl(Level level,				    String sourceClass,				    String sourceMethod,				    String message,				    Object[] params)  {    LogRecord rec = new LogRecord(level, message);    rec.setResourceBundle(findResourceBundle());    rec.setSourceClassName(sourceClass);    rec.setSourceMethodName(sourceMethod);    rec.setParameters(params);    log(rec);  }  public synchronized void logp(Level level,				String sourceClass,				String sourceMethod,				String message,				Object[] params)  {    logImpl(level, sourceClass, sourceMethod, message, params);  }  public synchronized void logp(Level level,				String sourceClass,				String sourceMethod,				String message,				Throwable thrown)  {    LogRecord rec = new LogRecord(level, message);    rec.setResourceBundle(resourceBundle);    rec.setSourceClassName(sourceClass);    rec.setSourceMethodName(sourceMethod);    rec.setThrown(thrown);    log(rec);  }  public synchronized void logrb(Level level,				 String sourceClass,				 String sourceMethod,				 String bundleName,				 String message)  {    logrb(level, sourceClass, sourceMethod, bundleName,	  message, (Object[]) null);  }  public synchronized void logrb(Level level,				 String sourceClass,				 String sourceMethod,				 String bundleName,				 String message,				 Object param)  {    logrb(level, sourceClass, sourceMethod, bundleName,	  message, new Object[] { param });  }  public synchronized void logrb(Level level,				 String sourceClass,				 String sourceMethod,				 String bundleName,				 String message,				 Object[] params)  {    LogRecord rec = new LogRecord(level, message);    rec.setResourceBundleName(bundleName);    rec.setSourceClassName(sourceClass);    rec.setSourceMethodName(sourceMethod);    rec.setParameters(params);    log(rec);  }  public synchronized void logrb(Level level,				 String sourceClass,				 String sourceMethod,				 String bundleName,				 String message,				 Throwable thrown)  {    LogRecord rec = new LogRecord(level, message);    rec.setResourceBundleName(bundleName);    rec.setSourceClassName(sourceClass);    rec.setSourceMethodName(sourceMethod);    rec.setThrown(thrown);    log(rec);  }  public synchronized void entering(String sourceClass,				    String sourceMethod)  {    if (isLoggable(Level.FINER))      logp(Level.FINER, sourceClass, sourceMethod, "ENTRY");  }  public synchronized void entering(String sourceClass,				    String sourceMethod,				    Object param)  {    if (isLoggable(Level.FINER))      logp(Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", param);  }  public synchronized void entering(String sourceClass,				    String sourceMethod,				    Object[] params)  {    if (isLoggable(Level.FINER))    {      StringBuffer buf = new StringBuffer(80);      buf.append("ENTRY");      for (int i = 0; i < params.length; i++)      {	buf.append(" {");	buf.append(i);	buf.append('}');      }            logp(Level.FINER, sourceClass, sourceMethod, buf.toString(), params);    }  }  public synchronized void exiting(String sourceClass,				   String sourceMethod)  {

⌨️ 快捷键说明

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