Save This Page
Home » openjdk-7 » java » util » logging » [javadoc | source]
    1   /*
    2    * Copyright 2001-2004 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   
   27   package java.util.logging;
   28   
   29   /**
   30    * ErrorManager objects can be attached to Handlers to process
   31    * any error that occur on a Handler during Logging.
   32    * <p>
   33    * When processing logging output, if a Handler encounters problems
   34    * then rather than throwing an Exception back to the issuer of
   35    * the logging call (who is unlikely to be interested) the Handler
   36    * should call its associated ErrorManager.
   37    */
   38   
   39   public class ErrorManager {
   40      private boolean reported = false;
   41   
   42       /*
   43        * We declare standard error codes for important categories of errors.
   44        */
   45   
   46       /**
   47        * GENERIC_FAILURE is used for failure that don't fit
   48        * into one of the other categories.
   49        */
   50       public final static int GENERIC_FAILURE = 0;
   51       /**
   52        * WRITE_FAILURE is used when a write to an output stream fails.
   53        */
   54       public final static int WRITE_FAILURE = 1;
   55       /**
   56        * FLUSH_FAILURE is used when a flush to an output stream fails.
   57        */
   58       public final static int FLUSH_FAILURE = 2;
   59       /**
   60        * CLOSE_FAILURE is used when a close of an output stream fails.
   61        */
   62       public final static int CLOSE_FAILURE = 3;
   63       /**
   64        * OPEN_FAILURE is used when an open of an output stream fails.
   65        */
   66       public final static int OPEN_FAILURE = 4;
   67       /**
   68        * FORMAT_FAILURE is used when formatting fails for any reason.
   69        */
   70       public final static int FORMAT_FAILURE = 5;
   71   
   72       /**
   73        * The error method is called when a Handler failure occurs.
   74        * <p>
   75        * This method may be overriden in subclasses.  The default
   76        * behavior in this base class is that the first call is
   77        * reported to System.err, and subsequent calls are ignored.
   78        *
   79        * @param msg    a descriptive string (may be null)
   80        * @param ex     an exception (may be null)
   81        * @param code   an error code defined in ErrorManager
   82        */
   83       public synchronized void error(String msg, Exception ex, int code) {
   84           if (reported) {
   85               // We only report the first error, to avoid clogging
   86               // the screen.
   87               return;
   88           }
   89           reported = true;
   90           String text = "java.util.logging.ErrorManager: " + code;
   91           if (msg != null) {
   92               text = text + ": " + msg;
   93           }
   94           System.err.println(text);
   95           if (ex != null) {
   96               ex.printStackTrace();
   97           }
   98       }
   99   }

Save This Page
Home » openjdk-7 » java » util » logging » [javadoc | source]