Class SimpleLog

  • All Implemented Interfaces:
    java.io.Serializable, Log

    public class SimpleLog
    extends java.lang.Object
    implements Log, java.io.Serializable

    Simple implementation of Log that sends all enabled log messages, for all defined loggers, to System.err. The following system properties are supported to configure the behavior of this logger:

    • org.apache.commons.logging.simplelog.defaultlog - Default logging detail level for all instances of SimpleLog. Must be one of ("trace", "debug", "info", "warn", "error", or "fatal"). If not specified, defaults to "info".
    • org.apache.commons.logging.simplelog.log.xxxxx - Logging detail level for a SimpleLog instance named "xxxxx". Must be one of ("trace", "debug", "info", "warn", "error", or "fatal"). If not specified, the default logging detail level is used.
    • org.apache.commons.logging.simplelog.showlogname - Set to true if you want the Log instance name to be included in output messages. Defaults to false.
    • org.apache.commons.logging.simplelog.showShortLogname - Set to true if you want the last component of the name to be included in output messages. Defaults to true.
    • org.apache.commons.logging.simplelog.showdatetime - Set to true if you want the current date and time to be included in output messages. Default is false.
    • org.apache.commons.logging.simplelog.dateTimeFormat - The date and time format to be used in the output messages. The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. If the format is not specified or is invalid, the default format is used. The default format is yyyy/MM/dd HH:mm:ss:SSS zzz.

    In addition to looking for system properties with the names specified above, this implementation also checks for a class loader resource named "simplelog.properties", and includes any matching definitions from this resource (if it exists).

    Version:
    $Id: SimpleLog.java,v 1.21 2004/06/06 20:47:56 rdonkin Exp $
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int currentLogLevel
      The current log level
      protected static java.text.DateFormat dateFormatter
      Used to format times
      protected static java.lang.String dateTimeFormat
      The date and time format to use in the log message
      protected static java.lang.String DEFAULT_DATE_TIME_FORMAT
      The default format to use when formatting dates
      static int LOG_LEVEL_ALL
      Enable all logging levels
      static int LOG_LEVEL_DEBUG
      "Debug" level logging.
      static int LOG_LEVEL_ERROR
      "Error" level logging.
      static int LOG_LEVEL_FATAL
      "Fatal" level logging.
      static int LOG_LEVEL_INFO
      "Info" level logging.
      static int LOG_LEVEL_OFF
      Enable no logging levels
      static int LOG_LEVEL_TRACE
      "Trace" level logging.
      static int LOG_LEVEL_WARN
      "Warn" level logging.
      protected java.lang.String logName
      The name of this simple log instance
      private static long serialVersionUID  
      private java.lang.String shortLogName
      The short name of this simple log instance
      protected static boolean showDateTime
      Include the current time in the log message
      protected static boolean showLogName
      Include the instance name in the log message?
      protected static boolean showShortName
      Include the short name ( last component ) of the logger in the log message.
      protected static java.util.Properties simpleLogProps
      Properties loaded from simplelog.properties
      protected static java.lang.String systemPrefix
      All system properties used by SimpleLog start with this
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleLog​(java.lang.String name)
      Construct a simple log with given name.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void debug​(java.lang.Object message)
      Log a message with debug log level.
      void debug​(java.lang.Object message, java.lang.Throwable t)
      Log an error with debug log level.
      void error​(java.lang.Object message)
      Log a message with error log level.
      void error​(java.lang.Object message, java.lang.Throwable t)
      Log an error with error log level.
      void fatal​(java.lang.Object message)
      Log a message with fatal log level.
      void fatal​(java.lang.Object message, java.lang.Throwable t)
      Log an error with fatal log level.
      private static boolean getBooleanProperty​(java.lang.String name, boolean dephault)  
      private static java.lang.ClassLoader getContextClassLoader()
      Return the thread context class loader if available.
      int getLevel()
      Get logging level.
      private static java.io.InputStream getResourceAsStream​(java.lang.String name)  
      private static java.lang.String getStringProperty​(java.lang.String name)  
      private static java.lang.String getStringProperty​(java.lang.String name, java.lang.String dephault)  
      void info​(java.lang.Object message)
      Log a message with info log level.
      void info​(java.lang.Object message, java.lang.Throwable t)
      Log an error with info log level.
      boolean isDebugEnabled()
      Are debug messages currently enabled?
      boolean isErrorEnabled()
      Are error messages currently enabled?
      boolean isFatalEnabled()
      Are fatal messages currently enabled?
      boolean isInfoEnabled()
      Are info messages currently enabled?
      protected boolean isLevelEnabled​(int logLevel)
      Is the given log level currently enabled?
      boolean isTraceEnabled()
      Are trace messages currently enabled?
      boolean isWarnEnabled()
      Are warn messages currently enabled?
      protected void log​(int type, java.lang.Object message, java.lang.Throwable t)
      Do the actual logging.
      void setLevel​(int currentLogLevel)
      Set logging level.
      void trace​(java.lang.Object message)
      Log a message with trace log level.
      void trace​(java.lang.Object message, java.lang.Throwable t)
      Log an error with trace log level.
      void warn​(java.lang.Object message)
      Log a message with warn log level.
      void warn​(java.lang.Object message, java.lang.Throwable t)
      Log an error with warn log level.
      protected void write​(java.lang.StringBuffer buffer)
      Write the content of the message accumulated in the specified StringBuffer to the appropriate output destination.
      • Methods inherited from class java.lang.Object

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

      • systemPrefix

        protected static final java.lang.String systemPrefix
        All system properties used by SimpleLog start with this
        See Also:
        Constant Field Values
      • simpleLogProps

        protected static final java.util.Properties simpleLogProps
        Properties loaded from simplelog.properties
      • DEFAULT_DATE_TIME_FORMAT

        protected static final java.lang.String DEFAULT_DATE_TIME_FORMAT
        The default format to use when formatting dates
        See Also:
        Constant Field Values
      • showLogName

        protected static boolean showLogName
        Include the instance name in the log message?
      • showShortName

        protected static boolean showShortName
        Include the short name ( last component ) of the logger in the log message. Defaults to true - otherwise we'll be lost in a flood of messages without knowing who sends them.
      • showDateTime

        protected static boolean showDateTime
        Include the current time in the log message
      • dateTimeFormat

        protected static java.lang.String dateTimeFormat
        The date and time format to use in the log message
      • dateFormatter

        protected static java.text.DateFormat dateFormatter
        Used to format times
      • LOG_LEVEL_TRACE

        public static final int LOG_LEVEL_TRACE
        "Trace" level logging.
        See Also:
        Constant Field Values
      • LOG_LEVEL_DEBUG

        public static final int LOG_LEVEL_DEBUG
        "Debug" level logging.
        See Also:
        Constant Field Values
      • LOG_LEVEL_INFO

        public static final int LOG_LEVEL_INFO
        "Info" level logging.
        See Also:
        Constant Field Values
      • LOG_LEVEL_WARN

        public static final int LOG_LEVEL_WARN
        "Warn" level logging.
        See Also:
        Constant Field Values
      • LOG_LEVEL_ERROR

        public static final int LOG_LEVEL_ERROR
        "Error" level logging.
        See Also:
        Constant Field Values
      • LOG_LEVEL_FATAL

        public static final int LOG_LEVEL_FATAL
        "Fatal" level logging.
        See Also:
        Constant Field Values
      • LOG_LEVEL_ALL

        public static final int LOG_LEVEL_ALL
        Enable all logging levels
        See Also:
        Constant Field Values
      • LOG_LEVEL_OFF

        public static final int LOG_LEVEL_OFF
        Enable no logging levels
        See Also:
        Constant Field Values
      • logName

        protected java.lang.String logName
        The name of this simple log instance
      • currentLogLevel

        protected int currentLogLevel
        The current log level
      • shortLogName

        private java.lang.String shortLogName
        The short name of this simple log instance
    • Constructor Detail

      • SimpleLog

        public SimpleLog​(java.lang.String name)
        Construct a simple log with given name.
        Parameters:
        name - log name
    • Method Detail

      • getStringProperty

        private static java.lang.String getStringProperty​(java.lang.String name)
      • getStringProperty

        private static java.lang.String getStringProperty​(java.lang.String name,
                                                          java.lang.String dephault)
      • getBooleanProperty

        private static boolean getBooleanProperty​(java.lang.String name,
                                                  boolean dephault)
      • setLevel

        public void setLevel​(int currentLogLevel)

        Set logging level.

        Parameters:
        currentLogLevel - new logging level
      • getLevel

        public int getLevel()

        Get logging level.

      • log

        protected void log​(int type,
                           java.lang.Object message,
                           java.lang.Throwable t)

        Do the actual logging. This method assembles the message and then calls write() to cause it to be written.

        Parameters:
        type - One of the LOG_LEVEL_XXX constants defining the log level
        message - The message itself (typically a String)
        t - The exception whose stack trace should be logged
      • write

        protected void write​(java.lang.StringBuffer buffer)

        Write the content of the message accumulated in the specified StringBuffer to the appropriate output destination. The default implementation writes to System.err.

        Parameters:
        buffer - A StringBuffer containing the accumulated text to be logged
      • isLevelEnabled

        protected boolean isLevelEnabled​(int logLevel)
        Is the given log level currently enabled?
        Parameters:
        logLevel - is this level enabled?
      • debug

        public final void debug​(java.lang.Object message)

        Log a message with debug log level.

        Specified by:
        debug in interface Log
        Parameters:
        message - log this message
      • debug

        public final void debug​(java.lang.Object message,
                                java.lang.Throwable t)

        Log an error with debug log level.

        Specified by:
        debug in interface Log
        Parameters:
        message - log this message
        t - log this cause
      • trace

        public final void trace​(java.lang.Object message)

        Log a message with trace log level.

        Specified by:
        trace in interface Log
        Parameters:
        message - log this message
      • trace

        public final void trace​(java.lang.Object message,
                                java.lang.Throwable t)

        Log an error with trace log level.

        Specified by:
        trace in interface Log
        Parameters:
        message - log this message
        t - log this cause
      • info

        public final void info​(java.lang.Object message)

        Log a message with info log level.

        Specified by:
        info in interface Log
        Parameters:
        message - log this message
      • info

        public final void info​(java.lang.Object message,
                               java.lang.Throwable t)

        Log an error with info log level.

        Specified by:
        info in interface Log
        Parameters:
        message - log this message
        t - log this cause
      • warn

        public final void warn​(java.lang.Object message)

        Log a message with warn log level.

        Specified by:
        warn in interface Log
        Parameters:
        message - log this message
      • warn

        public final void warn​(java.lang.Object message,
                               java.lang.Throwable t)

        Log an error with warn log level.

        Specified by:
        warn in interface Log
        Parameters:
        message - log this message
        t - log this cause
      • error

        public final void error​(java.lang.Object message)

        Log a message with error log level.

        Specified by:
        error in interface Log
        Parameters:
        message - log this message
      • error

        public final void error​(java.lang.Object message,
                                java.lang.Throwable t)

        Log an error with error log level.

        Specified by:
        error in interface Log
        Parameters:
        message - log this message
        t - log this cause
      • fatal

        public final void fatal​(java.lang.Object message)

        Log a message with fatal log level.

        Specified by:
        fatal in interface Log
        Parameters:
        message - log this message
      • fatal

        public final void fatal​(java.lang.Object message,
                                java.lang.Throwable t)

        Log an error with fatal log level.

        Specified by:
        fatal in interface Log
        Parameters:
        message - log this message
        t - log this cause
      • isDebugEnabled

        public final boolean isDebugEnabled()

        Are debug messages currently enabled?

        This allows expensive operations such as String concatenation to be avoided when the message will be ignored by the logger.

        Specified by:
        isDebugEnabled in interface Log
      • isErrorEnabled

        public final boolean isErrorEnabled()

        Are error messages currently enabled?

        This allows expensive operations such as String concatenation to be avoided when the message will be ignored by the logger.

        Specified by:
        isErrorEnabled in interface Log
      • isFatalEnabled

        public final boolean isFatalEnabled()

        Are fatal messages currently enabled?

        This allows expensive operations such as String concatenation to be avoided when the message will be ignored by the logger.

        Specified by:
        isFatalEnabled in interface Log
      • isInfoEnabled

        public final boolean isInfoEnabled()

        Are info messages currently enabled?

        This allows expensive operations such as String concatenation to be avoided when the message will be ignored by the logger.

        Specified by:
        isInfoEnabled in interface Log
        Returns:
        true if info enabled, false otherwise
      • isTraceEnabled

        public final boolean isTraceEnabled()

        Are trace messages currently enabled?

        This allows expensive operations such as String concatenation to be avoided when the message will be ignored by the logger.

        Specified by:
        isTraceEnabled in interface Log
        Returns:
        true if trace enabled, false otherwise
      • isWarnEnabled

        public final boolean isWarnEnabled()

        Are warn messages currently enabled?

        This allows expensive operations such as String concatenation to be avoided when the message will be ignored by the logger.

        Specified by:
        isWarnEnabled in interface Log
      • getContextClassLoader

        private static java.lang.ClassLoader getContextClassLoader()
        Return the thread context class loader if available. Otherwise return null. The thread context class loader is available for JDK 1.2 or later, if certain security conditions are met.
        Throws:
        LogConfigurationException - if a suitable class loader cannot be identified.
      • getResourceAsStream

        private static java.io.InputStream getResourceAsStream​(java.lang.String name)