de.unikassel.android.sdcframework.util
Class Logger

Package class diagram package Logger
java.lang.Object
  extended by java.lang.Thread
      extended by de.unikassel.android.sdcframework.util.AbstractWorkerThread
          extended by de.unikassel.android.sdcframework.util.AbstractEventDispatcherImpl<T,T>
              extended by de.unikassel.android.sdcframework.util.EventDispatcherImpl<LogEvent>
                  extended by de.unikassel.android.sdcframework.util.Logger
All Implemented Interfaces:
EventDispatcher<LogEvent,LogEvent>, ObservableEventSource<LogEvent>, ObserverRegistration<LogEvent>, WorkerThread, Runnable

public final class Logger
extends EventDispatcherImpl<LogEvent>

The observable logger implemented as Singleton and observable for LogEvents.
Does redirect any recived log message to the Android Log class, depending on the invoked log method and the corresponding log level.
Any message above the current log level will be sent to registered observers as LogEvent.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private static Logger instance
          the singleton instance of the logger
private  AtomicBoolean isRedirectingToAndroidLog
          Flag for redirection to Android log
private  LogLevel logLevel
          out current log level
private static String TAG
          The android log tag
 
Fields inherited from class de.unikassel.android.sdcframework.util.AbstractEventDispatcherImpl
collector
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
private Logger()
          Constructor
 
Method Summary
 void debug(Object src, String msg)
          Does log a debug message
protected  void doWork()
          The working method executed in the running loop if started
private  void enqueue(Object src, LogLevel logLevel, String msg)
          Does enqueue a new log event
 void error(Object src, String msg)
          Does log an error message
static Logger getInstance()
          Getter for the global logger instance
 LogLevel getLogLevel()
          Getter for the logLevel
 void info(Object src, String msg)
          Does log an info message
 boolean isRedirectingToAndroidLog()
          Getter for the isRedirectingToAndroidLog flag
private static void redirectToAndroidLog(LogEvent logEvent)
          Does redirect a log event message to the Andorid Log class
static void releaseInstance()
          Does release the global singleton instance
 void setLogLevel(LogLevel logLevel)
          Setter for the logLevel
 void setRedirectingToAndroidLog(boolean doRedircet)
          Setter for the isRedirectingToAndroidLog flag
static int toAndroidLogLevel(LogLevel logLevel)
          Converts our log level to Android Log level
static LogEvent toLogEvent(Object src, LogLevel logLevel, String msg)
          Does create a log event based on given information
 void warning(Object src, String msg)
          Does log a warning message
private  void writeToLogfile(LogEvent event)
           
 
Methods inherited from class de.unikassel.android.sdcframework.util.AbstractEventDispatcherImpl
doCleanUp, getCollector, getEventSource, hasObservers, notify, registerEventObserver, removeAllObservers, unregisterEventObserver
 
Methods inherited from class de.unikassel.android.sdcframework.util.AbstractWorkerThread
doTerminate, hasTerminated, isLogging, isWorking, logMessage, run, setLogging, start, startWork, stopWork
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.unikassel.android.sdcframework.util.facade.WorkerThread
doTerminate, hasTerminated, isLogging, isWorking, setLogging, startWork, stopWork
 

Field Detail

TAG

private static final String TAG
The android log tag

See Also:
Constant Field Values

logLevel

private LogLevel logLevel
out current log level


isRedirectingToAndroidLog

private final AtomicBoolean isRedirectingToAndroidLog
Flag for redirection to Android log


instance

private static Logger instance
the singleton instance of the logger

Constructor Detail

Logger

private Logger()
Constructor

Method Detail

getInstance

public static Logger getInstance()
Getter for the global logger instance

Returns:
the global logger instance

releaseInstance

public static void releaseInstance()
Does release the global singleton instance


setLogLevel

public final void setLogLevel(LogLevel logLevel)
Setter for the logLevel

Parameters:
logLevel - the logLevel to set

getLogLevel

public final LogLevel getLogLevel()
Getter for the logLevel

Returns:
the logLevel

setRedirectingToAndroidLog

public final void setRedirectingToAndroidLog(boolean doRedircet)
Setter for the isRedirectingToAndroidLog flag

Parameters:
doRedircet - if true log info will be redirected to Android Log

isRedirectingToAndroidLog

public final boolean isRedirectingToAndroidLog()
Getter for the isRedirectingToAndroidLog flag

Returns:
the isRedirectingToAndroidLog flag

toLogEvent

public static final LogEvent toLogEvent(Object src,
                                        LogLevel logLevel,
                                        String msg)
Does create a log event based on given information

Parameters:
src - the source object
logLevel - the log level
msg - the log message
Returns:
a log event

toAndroidLogLevel

public static final int toAndroidLogLevel(LogLevel logLevel)
Converts our log level to Android Log level

Parameters:
logLevel - the SDC log level
Returns:
the corresponding Android Log level

redirectToAndroidLog

private static final void redirectToAndroidLog(LogEvent logEvent)
Does redirect a log event message to the Andorid Log class

Parameters:
logEvent - the log event

enqueue

private final void enqueue(Object src,
                           LogLevel logLevel,
                           String msg)
Does enqueue a new log event

Parameters:
src - the events source
logLevel - the log level
msg - the message

doWork

protected final void doWork()
Description copied from class: AbstractWorkerThread
The working method executed in the running loop if started

Overrides:
doWork in class EventDispatcherImpl<LogEvent>

writeToLogfile

private void writeToLogfile(LogEvent event)
Parameters:
event -

debug

public final void debug(Object src,
                        String msg)
Does log a debug message

Parameters:
src - the message source object
msg - the message

info

public final void info(Object src,
                       String msg)
Does log an info message

Parameters:
src - the message source object
msg - the message

warning

public final void warning(Object src,
                          String msg)
Does log a warning message

Parameters:
src - the message source object
msg - the message

error

public final void error(Object src,
                        String msg)
Does log an error message

Parameters:
src - the message source object
msg - the message