Class Log

  • Direct Known Subclasses:
    DefaultLog

    public class Log
    extends java.lang.Object
    A simple logging facility. Create a class implementing the LogTarget interface to use this feature.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Log.SimpleMessage
      A simple message class.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int debuglevel
      The logging threshold.
      private java.util.HashMap logContexts
      The log contexts.
      private LogTarget[] logTargets
      Storage for the log targets.
      private static Log singleton
      the singleton instance of the Log system.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Log()
      Creates a new Log instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addTarget​(LogTarget target)
      Adds a log target to this facility.
      static LogContext createContext​(java.lang.Class context)
      Creates a log context.
      static LogContext createContext​(java.lang.String context)
      Creates a log context.
      static void debug​(java.lang.Object message)
      A convenience method for logging a 'debug' message.
      static void debug​(java.lang.Object message, java.lang.Exception e)
      A convenience method for logging a 'debug' message.
      protected static void defineLog​(Log log)
      Redefines or clears the currently used log instance.
      protected void doLog​(int level, java.lang.Object message)
      Logs a message to the main log stream.
      protected void doLog​(int level, java.lang.Object message, java.lang.Exception e)
      Logs a message to the main log stream.
      static void error​(java.lang.Object message)
      A convenience method for logging an 'error' message.
      static void error​(java.lang.Object message, java.lang.Exception e)
      A convenience method for logging an 'error' message.
      int getDebuglevel()
      Returns the currently defined debug level.
      static Log getInstance()
      Returns the singleton Log instance.
      LogTarget[] getTargets()
      Returns the registered logtargets.
      static void info​(java.lang.Object message)
      A convenience method for logging an 'info' message.
      static void info​(java.lang.Object message, java.lang.Exception e)
      A convenience method for logging an 'info' message.
      void init()
      Initializes the logging system.
      protected LogContext internalCreateContext​(java.lang.String context)
      Creates a log context.
      static boolean isDebugEnabled()
      Returns true, if the log level allows debug messages to be printed.
      static boolean isErrorEnabled()
      Returns true, if the log level allows error messages to be printed.
      static boolean isInfoEnabled()
      Returns true, if the log level allows informational messages to be printed.
      static boolean isWarningEnabled()
      Returns true, if the log level allows warning messages to be printed.
      static void log​(int level, java.lang.Object message)
      Logs a message to the main log stream.
      static void log​(int level, java.lang.Object message, java.lang.Exception e)
      Logs a message to the main log stream.
      void removeTarget​(LogTarget target)
      Removes a log target from this facility.
      void replaceTargets​(LogTarget target)
      Replaces all log targets by the given target.
      protected void setDebuglevel​(int debuglevel)
      Defines the debug level for the log system.
      static void warn​(java.lang.Object message)
      A convenience method for logging a 'warning' message.
      static void warn​(java.lang.Object message, java.lang.Exception e)
      A convenience method for logging a 'warning' message.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • debuglevel

        private int debuglevel
        The logging threshold.
      • logTargets

        private LogTarget[] logTargets
        Storage for the log targets.
      • logContexts

        private java.util.HashMap logContexts
        The log contexts.
      • singleton

        private static Log singleton
        the singleton instance of the Log system.
    • Constructor Detail

      • Log

        protected Log()
        Creates a new Log instance. The Log is used to manage the log targets.
    • Method Detail

      • getInstance

        public static Log getInstance()
        Returns the singleton Log instance. A new instance is created if necessary.
        Returns:
        the singleton instance.
      • defineLog

        protected static void defineLog​(Log log)
        Redefines or clears the currently used log instance.
        Parameters:
        log - the new log instance or null, to return to the default implementation.
      • getDebuglevel

        public int getDebuglevel()
        Returns the currently defined debug level. The higher the level, the more details are printed.
        Returns:
        the debug level.
      • setDebuglevel

        protected void setDebuglevel​(int debuglevel)
        Defines the debug level for the log system.
        Parameters:
        debuglevel - the new debug level
        See Also:
        getDebuglevel()
      • addTarget

        public void addTarget​(LogTarget target)
        Adds a log target to this facility. Log targets get informed, via the LogTarget interface, whenever a message is logged with this class.
        Parameters:
        target - the target.
      • removeTarget

        public void removeTarget​(LogTarget target)
        Removes a log target from this facility.
        Parameters:
        target - the target to remove.
      • getTargets

        public LogTarget[] getTargets()
        Returns the registered logtargets.
        Returns:
        the logtargets.
      • replaceTargets

        public void replaceTargets​(LogTarget target)
        Replaces all log targets by the given target.
        Parameters:
        target - the new and only logtarget.
      • debug

        public static void debug​(java.lang.Object message)
        A convenience method for logging a 'debug' message.
        Parameters:
        message - the message.
      • debug

        public static void debug​(java.lang.Object message,
                                 java.lang.Exception e)
        A convenience method for logging a 'debug' message.
        Parameters:
        message - the message.
        e - the exception.
      • info

        public static void info​(java.lang.Object message)
        A convenience method for logging an 'info' message.
        Parameters:
        message - the message.
      • info

        public static void info​(java.lang.Object message,
                                java.lang.Exception e)
        A convenience method for logging an 'info' message.
        Parameters:
        message - the message.
        e - the exception.
      • warn

        public static void warn​(java.lang.Object message)
        A convenience method for logging a 'warning' message.
        Parameters:
        message - the message.
      • warn

        public static void warn​(java.lang.Object message,
                                java.lang.Exception e)
        A convenience method for logging a 'warning' message.
        Parameters:
        message - the message.
        e - the exception.
      • error

        public static void error​(java.lang.Object message)
        A convenience method for logging an 'error' message.
        Parameters:
        message - the message.
      • error

        public static void error​(java.lang.Object message,
                                 java.lang.Exception e)
        A convenience method for logging an 'error' message.
        Parameters:
        message - the message.
        e - the exception.
      • doLog

        protected void doLog​(int level,
                             java.lang.Object message)
        Logs a message to the main log stream. All attached log targets will also receive this message. If the given log-level is higher than the given debug-level in the main config file, no logging will be done.
        Parameters:
        level - log level of the message.
        message - text to be logged.
      • log

        public static void log​(int level,
                               java.lang.Object message)
        Logs a message to the main log stream. All attached log targets will also receive this message. If the given log-level is higher than the given debug-level in the main config file, no logging will be done.
        Parameters:
        level - log level of the message.
        message - text to be logged.
      • log

        public static void log​(int level,
                               java.lang.Object message,
                               java.lang.Exception e)
        Logs a message to the main log stream. All attached logTargets will also receive this message. If the given log-level is higher than the given debug-level in the main config file, no logging will be done.

        The exception's stacktrace will be appended to the log-stream

        Parameters:
        level - log level of the message.
        message - text to be logged.
        e - the exception, which should be logged.
      • doLog

        protected void doLog​(int level,
                             java.lang.Object message,
                             java.lang.Exception e)
        Logs a message to the main log stream. All attached logTargets will also receive this message. If the given log-level is higher than the given debug-level in the main config file, no logging will be done.

        The exception's stacktrace will be appended to the log-stream

        Parameters:
        level - log level of the message.
        message - text to be logged.
        e - the exception, which should be logged.
      • init

        public void init()
        Initializes the logging system. Implementors should override this method to supply their own log configuration.
      • isDebugEnabled

        public static boolean isDebugEnabled()
        Returns true, if the log level allows debug messages to be printed.
        Returns:
        true, if messages with an log level of DEBUG are allowed.
      • isInfoEnabled

        public static boolean isInfoEnabled()
        Returns true, if the log level allows informational messages to be printed.
        Returns:
        true, if messages with an log level of INFO are allowed.
      • isWarningEnabled

        public static boolean isWarningEnabled()
        Returns true, if the log level allows warning messages to be printed.
        Returns:
        true, if messages with an log level of WARN are allowed.
      • isErrorEnabled

        public static boolean isErrorEnabled()
        Returns true, if the log level allows error messages to be printed.
        Returns:
        true, if messages with an log level of ERROR are allowed.
      • createContext

        public static LogContext createContext​(java.lang.Class context)
        Creates a log context.
        Parameters:
        context - the class (null not permitted).
        Returns:
        A log context.
      • createContext

        public static LogContext createContext​(java.lang.String context)
        Creates a log context.
        Parameters:
        context - the label for the context.
        Returns:
        A log context.
      • internalCreateContext

        protected LogContext internalCreateContext​(java.lang.String context)
        Creates a log context.
        Parameters:
        context - the name of the logging context (a common prefix).
        Returns:
        A log context.