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

📄 fallbackerrorhandler.java

📁 apache的log4j源码
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.log4j.varia;import  org.apache.log4j.spi.ErrorHandler;import  org.apache.log4j.spi.LoggingEvent;import  org.apache.log4j.Appender;import  org.apache.log4j.Logger;import  org.apache.log4j.helpers.LogLog;import java.util.Vector; /**  *  * The <code>FallbackErrorHandler</code> implements the ErrorHandler  * interface such that a secondary appender may be specified.  This  * secondary appender takes over if the primary appender fails for  * whatever reason.  *  * <p>The error message is printed on <code>System.err</code>, and  * logged in the new secondary appender.  *  * @author Ceki G&uuml;c&uuml;  * */public class FallbackErrorHandler implements ErrorHandler {  Appender backup;  Appender primary;  Vector loggers;  public FallbackErrorHandler() {  }    /**     <em>Adds</em> the logger passed as parameter to the list of     loggers that we need to search for in case of appender failure.  */  public   void setLogger(Logger logger) {    LogLog.debug("FB: Adding logger [" + logger.getName() + "].");    if(loggers == null) {      loggers = new Vector();    }    loggers.addElement(logger);  }  /**     No options to activate.  */  public   void activateOptions() {  }  /**     Prints the message and the stack trace of the exception on     <code>System.err</code>.  */  public  void error(String message, Exception e, int errorCode) {     error(message, e, errorCode, null);  }  /**     Prints the message and the stack trace of the exception on     <code>System.err</code>.   */  public  void error(String message, Exception e, int errorCode, LoggingEvent event) {    LogLog.debug("FB: The following error reported: " + message, e);    LogLog.debug("FB: INITIATING FALLBACK PROCEDURE.");    if (loggers != null) {    	for(int i = 0; i < loggers.size(); i++) {      		Logger l = (Logger) loggers.elementAt(i);      		LogLog.debug("FB: Searching for ["+primary.getName()+"] in logger ["		   		+l.getName() + "].");      		LogLog.debug("FB: Replacing ["+primary.getName()+"] by ["		   		+ backup.getName() + "] in logger ["+ l.getName() +"].");      		l.removeAppender(primary);      		LogLog.debug("FB: Adding appender ["+backup.getName()+"] to logger "		   		+  l.getName());      		l.addAppender(backup);        }    }      }  /**     Print a the error message passed as parameter on     <code>System.err</code>.    */  public   void error(String message) {    //if(firstTime) {    //LogLog.error(message);    //firstTime = false;    //}  }    /**     The appender to which this error handler is attached.   */  public  void setAppender(Appender primary) {    LogLog.debug("FB: Setting primary appender to [" + primary.getName() + "].");    this.primary = primary;  }  /**     Set the backup appender.   */  public  void setBackupAppender(Appender backup) {    LogLog.debug("FB: Setting backup appender to [" + backup.getName() + "].");    this.backup = backup;  }  }

⌨️ 快捷键说明

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