Class BaseLogger


  • public abstract class BaseLogger
    extends java.lang.Object
    Base class for implementing a logger class. A logger class is a class with dedicated methods for each log message:
     public class MyLogger extends BaseLogger {
    
       public static MyLogger LOG = createLogger(MyLogger.class, "MYPROJ", "org.example", "01");
    
       public void engineStarted(long currentTime) {
         logInfo("100", "My super engine has started at '{}'", currentTime);
       }
    
     }
     
    The logger can then be used in the following way:
     LOG.engineStarted(System.currentTimeMilliseconds());
     
    This will print the following message:
     INFO  org.example - MYPROJ-01100 My super engine has started at '4234234523'
     

    Slf4j

    This class uses slf4j as logging API. The class ensures that log messages and exception messages are always formatted using the same template.

    Log message format

    The log message format produced by this class is as follows:
     [PROJECT_CODE]-[COMPONENT_ID][MESSAGE_ID] message
     
    Example:
     MYPROJ-01100 My super engine has started at '4234234523'
     
    Author:
    Daniel Meyer, Sebastian Menski
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String componentId
      the component Id of the logger.
      protected org.slf4j.Logger delegateLogger
      the slf4j logger we delegate to
      protected java.lang.String projectCode
      the project code of the logger
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected BaseLogger()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static <T extends BaseLogger>
      T
      createLogger​(java.lang.Class<T> loggerClass, java.lang.String projectCode, java.lang.String name, java.lang.String componentId)
      Creates a new instance of the Logger.
      protected java.lang.String exceptionMessage​(java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Prepares an exception message
      protected java.lang.String formatMessageTemplate​(java.lang.String id, java.lang.String messageTemplate)
      Formats a message template
      boolean isDebugEnabled()  
      boolean isErrorEnabled()  
      boolean isInfoEnabled()  
      boolean isWarnEnabled()  
      protected void log​(java.lang.String level, java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs a message with the specified log level.
      protected void log​(java.lang.String level, Level defaultLevel, java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs a message with the specified log level.
      protected void logDebug​(java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs a 'DEBUG' message
      protected void logError​(java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs an 'ERROR' message
      protected void logInfo​(java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs an 'INFO' message
      protected void logTrace​(java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs a 'TRACE' message
      protected void logWarn​(java.lang.String id, java.lang.String messageTemplate, java.lang.Object... parameters)
      Logs an 'WARN' message
      • Methods inherited from class java.lang.Object

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

      • delegateLogger

        protected org.slf4j.Logger delegateLogger
        the slf4j logger we delegate to
      • projectCode

        protected java.lang.String projectCode
        the project code of the logger
      • componentId

        protected java.lang.String componentId
        the component Id of the logger.
    • Constructor Detail

      • BaseLogger

        protected BaseLogger()
    • Method Detail

      • createLogger

        public static <T extends BaseLogger> T createLogger​(java.lang.Class<T> loggerClass,
                                                            java.lang.String projectCode,
                                                            java.lang.String name,
                                                            java.lang.String componentId)
        Creates a new instance of the Logger.
        Parameters:
        loggerClass - the type of the logger
        projectCode - the unique code for a complete project.
        name - the name of the slf4j logger to use.
        componentId - the unique id of the component.
      • log

        protected void log​(java.lang.String level,
                           java.lang.String id,
                           java.lang.String messageTemplate,
                           java.lang.Object... parameters)
        Logs a message with the specified log level. If the log level cannot be matched, it defaults to DEBUG.
        Parameters:
        level - the log level
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • log

        protected void log​(java.lang.String level,
                           Level defaultLevel,
                           java.lang.String id,
                           java.lang.String messageTemplate,
                           java.lang.Object... parameters)
        Logs a message with the specified log level.
        Parameters:
        level - the log level
        defaultLevel - the default log level to use when log level cannot be matched
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • logTrace

        protected void logTrace​(java.lang.String id,
                                java.lang.String messageTemplate,
                                java.lang.Object... parameters)
        Logs a 'TRACE' message
        Parameters:
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • logDebug

        protected void logDebug​(java.lang.String id,
                                java.lang.String messageTemplate,
                                java.lang.Object... parameters)
        Logs a 'DEBUG' message
        Parameters:
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • logInfo

        protected void logInfo​(java.lang.String id,
                               java.lang.String messageTemplate,
                               java.lang.Object... parameters)
        Logs an 'INFO' message
        Parameters:
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • logWarn

        protected void logWarn​(java.lang.String id,
                               java.lang.String messageTemplate,
                               java.lang.Object... parameters)
        Logs an 'WARN' message
        Parameters:
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • logError

        protected void logError​(java.lang.String id,
                                java.lang.String messageTemplate,
                                java.lang.Object... parameters)
        Logs an 'ERROR' message
        Parameters:
        id - the unique id of this log message
        messageTemplate - the message template to use
        parameters - a list of optional parameters
      • isDebugEnabled

        public boolean isDebugEnabled()
        Returns:
        true if the logger will log 'DEBUG' messages
      • isInfoEnabled

        public boolean isInfoEnabled()
        Returns:
        true if the logger will log 'INFO' messages
      • isWarnEnabled

        public boolean isWarnEnabled()
        Returns:
        true if the logger will log 'WARN' messages
      • isErrorEnabled

        public boolean isErrorEnabled()
        Returns:
        true if the logger will log 'ERROR' messages
      • formatMessageTemplate

        protected java.lang.String formatMessageTemplate​(java.lang.String id,
                                                         java.lang.String messageTemplate)
        Formats a message template
        Parameters:
        id - the id of the message
        messageTemplate - the message template to use
        Returns:
        the formatted template
      • exceptionMessage

        protected java.lang.String exceptionMessage​(java.lang.String id,
                                                    java.lang.String messageTemplate,
                                                    java.lang.Object... parameters)
        Prepares an exception message
        Parameters:
        id - the id of the message
        messageTemplate - the message template to use
        parameters - the parameters for the message (optional)
        Returns:
        the prepared exception message