org.apache.avalon.excalibur.logger.util
Class LoggerSwitch.SwitchingLogger

java.lang.Object
  extended by org.apache.avalon.excalibur.logger.util.LoggerSwitch.SwitchingLogger
All Implemented Interfaces:
org.apache.avalon.framework.logger.Logger
Enclosing class:
LoggerSwitch

private static class LoggerSwitch.SwitchingLogger
extends java.lang.Object
implements org.apache.avalon.framework.logger.Logger


Field Summary
(package private)  org.apache.avalon.framework.logger.Logger m_fallback
           
(package private)  org.apache.avalon.framework.logger.Logger m_preferred
           
(package private)  LoggerSwitch.BooleanThreadLocal m_recursionOnFallback
           
(package private)  LoggerSwitch.BooleanThreadLocal m_recursionOnPreferred
           
 
Constructor Summary
LoggerSwitch.SwitchingLogger(org.apache.avalon.framework.logger.Logger fallback, org.apache.avalon.framework.logger.Logger preferred)
           
 
Method Summary
 void debug(java.lang.String message)
           
 void debug(java.lang.String message, java.lang.Throwable throwable)
           
 void error(java.lang.String message)
           
 void error(java.lang.String message, java.lang.Throwable throwable)
           
 void fatalError(java.lang.String message)
           
 void fatalError(java.lang.String message, java.lang.Throwable throwable)
           
 org.apache.avalon.framework.logger.Logger getChildLogger(java.lang.String name)
           
private  org.apache.avalon.framework.logger.Logger getLogger()
          Retrieve m_preferred or if that is null m_fallback.
private  org.apache.avalon.framework.logger.Logger getLoggerLight()
           
 void info(java.lang.String message)
           
 void info(java.lang.String message, java.lang.Throwable throwable)
           
 boolean isDebugEnabled()
          This and similar method may probably be optimized in the future by caching the boolean in our instance variables.
 boolean isErrorEnabled()
           
 boolean isFatalErrorEnabled()
           
 boolean isInfoEnabled()
           
 boolean isWarnEnabled()
           
private  void releaseLogger()
           
(package private)  void setFallback(org.apache.avalon.framework.logger.Logger fallback)
           
(package private)  void setPreferred(org.apache.avalon.framework.logger.Logger preferred)
           
 void warn(java.lang.String message)
           
 void warn(java.lang.String message, java.lang.Throwable throwable)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_fallback

org.apache.avalon.framework.logger.Logger m_fallback

m_preferred

org.apache.avalon.framework.logger.Logger m_preferred

m_recursionOnPreferred

LoggerSwitch.BooleanThreadLocal m_recursionOnPreferred

m_recursionOnFallback

LoggerSwitch.BooleanThreadLocal m_recursionOnFallback
Constructor Detail

LoggerSwitch.SwitchingLogger

LoggerSwitch.SwitchingLogger(org.apache.avalon.framework.logger.Logger fallback,
                             org.apache.avalon.framework.logger.Logger preferred)
Method Detail

setFallback

void setFallback(org.apache.avalon.framework.logger.Logger fallback)

setPreferred

void setPreferred(org.apache.avalon.framework.logger.Logger preferred)

getLogger

private org.apache.avalon.framework.logger.Logger getLogger()
Retrieve m_preferred or if that is null m_fallback. Safeguard against recursion. That is possible if try to log something via a Logger that is failing and trying to log its own error via itself.


getLoggerLight

private org.apache.avalon.framework.logger.Logger getLoggerLight()

releaseLogger

private void releaseLogger()

debug

public void debug(java.lang.String message)
Specified by:
debug in interface org.apache.avalon.framework.logger.Logger

debug

public void debug(java.lang.String message,
                  java.lang.Throwable throwable)
Specified by:
debug in interface org.apache.avalon.framework.logger.Logger

isDebugEnabled

public boolean isDebugEnabled()
This and similar method may probably be optimized in the future by caching the boolean in our instance variables. Each time setPreferred() or setFallback() is called they will be cached. Maybe in the future. :-)

Specified by:
isDebugEnabled in interface org.apache.avalon.framework.logger.Logger

info

public void info(java.lang.String message)
Specified by:
info in interface org.apache.avalon.framework.logger.Logger

info

public void info(java.lang.String message,
                 java.lang.Throwable throwable)
Specified by:
info in interface org.apache.avalon.framework.logger.Logger

isInfoEnabled

public boolean isInfoEnabled()
Specified by:
isInfoEnabled in interface org.apache.avalon.framework.logger.Logger

warn

public void warn(java.lang.String message)
Specified by:
warn in interface org.apache.avalon.framework.logger.Logger

warn

public void warn(java.lang.String message,
                 java.lang.Throwable throwable)
Specified by:
warn in interface org.apache.avalon.framework.logger.Logger

isWarnEnabled

public boolean isWarnEnabled()
Specified by:
isWarnEnabled in interface org.apache.avalon.framework.logger.Logger

error

public void error(java.lang.String message)
Specified by:
error in interface org.apache.avalon.framework.logger.Logger

error

public void error(java.lang.String message,
                  java.lang.Throwable throwable)
Specified by:
error in interface org.apache.avalon.framework.logger.Logger

isErrorEnabled

public boolean isErrorEnabled()
Specified by:
isErrorEnabled in interface org.apache.avalon.framework.logger.Logger

fatalError

public void fatalError(java.lang.String message)
Specified by:
fatalError in interface org.apache.avalon.framework.logger.Logger

fatalError

public void fatalError(java.lang.String message,
                       java.lang.Throwable throwable)
Specified by:
fatalError in interface org.apache.avalon.framework.logger.Logger

isFatalErrorEnabled

public boolean isFatalErrorEnabled()
Specified by:
isFatalErrorEnabled in interface org.apache.avalon.framework.logger.Logger

getChildLogger

public org.apache.avalon.framework.logger.Logger getChildLogger(java.lang.String name)
Specified by:
getChildLogger in interface org.apache.avalon.framework.logger.Logger