Interface RuntimeLogger

  • All Superinterfaces:
    LogPriorityAccessor, MessageLogger<LogPriority>, org.refcodes.mixin.NameAccessor
    All Known Implementing Classes:
    RuntimeLoggerImpl, RuntimeLoggerSingleton

    public interface RuntimeLogger
    extends MessageLogger<LogPriority>, LogPriorityAccessor, org.refcodes.mixin.NameAccessor
    Plain simple interface for logging out runtime information generated by software systems. The RuntimeLogger defines a plain simple interface for logging out runtime information generated by software systems. The RuntimeLoggerImpl implementation takes care of logging out the class and the method generating a log line. The RuntimeLoggerImpl actually takes a Logger instance; which implementation to take is up to you:
    • SystemLogger
    • AsyncLogger
    • ConsoleLogger (ConsoleLoggerImpl)
    • IoLogger
    • SimpleDbLoggerImpl
    • SimpleDbLoggerImpl
    • Slf4jLogger
    (you find the various Logger implementations in the refcodes-logger-alt artifact's modules) Use the factory (the factory is implemented as a singleton) RuntimeLoggerFactorySingleton retrieving RuntimeLogger instances configured by a "runtimelogge.ini" file using the RuntimeProperties as well as the PolyglotProperties. This means you can use YAML, TOML, INI, PROPERTIES, XML or JSON notations. A SLF4J binding exists in the refcodes-logger-ext-slf4j" artifact which binds the refcodes-logger framework to SLF4J enabling to log all your SLF4J logs out by the refcodes-logger framework, e.g. to a SimpleDbLoggerImpl. The RuntimeLogger may also be configured with one of the below mentioned loggers.
    Author:
    steiner
    • Field Detail

      • RUNTIME_LOGGER_CONFIG

        static final java.lang.String RUNTIME_LOGGER_CONFIG
        The filename of the file on the classpath containing the config for the runtime logger.
        See Also:
        Constant Field Values
      • ROOT_LOGGER_ELEMENT_PATH

        static final java.lang.String ROOT_LOGGER_ELEMENT_PATH
        The root logger is identified by this XML element path.
        See Also:
        Constant Field Values
    • Method Detail

      • log

        void log​(LogPriority aPriority,
                 java.lang.String aMessage,
                 java.lang.Throwable aThrowable)
        Creates a new log message.
        Parameters:
        aPriority - The level of the message.
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
      • log

        void log​(LogPriority aPriority,
                 java.lang.String aMessage,
                 java.lang.Throwable aThrowable,
                 java.lang.Object... aArguments)
        Creates a new log message. The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y.
        Parameters:
        aPriority - The level of the message.
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
        aArguments - The arguments used when replacing the placeholders.
      • trace

        void trace​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.TRACE.
        Parameters:
        aMessage - The message to be logged.
      • trace

        void trace​(java.lang.String aMessage,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.TRACE. The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y.
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • isLogTrace

        boolean isLogTrace()
        Determines whether the RuntimeLogger is being configured to log comments (LogPriority.TRACE). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case comments are logged.
      • debug

        void debug​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.DEBUG. "Info useful to developers for debugging the application, not useful during operations." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • debug

        void debug​(java.lang.String aMessage,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.DEBUG. "Info useful to developers for debugging the application, not useful during operations." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • isLogDebug

        boolean isLogDebug()
        Determines whether the RuntimeLogger is being configured to log debug messages (LogPriority.DEBUG). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case debug messages are logged.
      • info

        void info​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.INFO. "Additional information which might be useful for some stability period." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • info

        void info​(java.lang.String aMessage,
                  java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.INFO. "Additional information which might be useful for some stability period." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • isLogInfo

        boolean isLogInfo()
        Determines whether the RuntimeLogger is being configured to log infos (LogPriority.INFO). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case infos are logged.
      • notice

        void notice​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.NOTICE. "Events that are unusual but not error conditions - might be summarized in an email to developers or admins to spot potential problems - no immediate action required." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • notice

        void notice​(java.lang.String aMessage,
                    java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.NOTICE. "Events that are unusual but not error conditions - might be summarized in an email to developers or admins to spot potential problems - no immediate action required." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • isLogNotice

        boolean isLogNotice()
        Determines whether the RuntimeLogger is being configured to log notices (LogPriority.NOTICE). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case infos are logged.
      • warn

        void warn​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.WARN. "Warning messages, not an error, but indication that an error will occur if action is not taken, e.g. file system 85% full - each item must be resolved within a given time." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • warn

        void warn​(java.lang.String aMessage,
                  java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.WARN. "Warning messages, not an error, but indication that an error will occur if action is not taken, e.g. file system 85% full - each item must be resolved within a given time." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • warn

        void warn​(java.lang.String aMessage,
                  java.lang.Throwable aThrowable)
        Logs a log message with log priority LogPriority.WARN. "Warning messages, not an error, but indication that an error will occur if action is not taken, e.g. file system 85% full - each item must be resolved within a given time." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
      • warn

        void warn​(java.lang.String aMessage,
                  java.lang.Throwable aThrowable,
                  java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.WARN. "Warning messages, not an error, but indication that an error will occur if action is not taken, e.g. file system 85% full - each item must be resolved within a given time." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
        aArguments - The arguments used when replacing the placeholders.
      • isLogWarn

        boolean isLogWarn()
        Determines whether the RuntimeLogger is being configured to log warnings (LogPriority.WARN). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case warnings are logged.
      • error

        void error​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.ERROR. "Non-urgent failures, these should be relayed to developers or admins; each item must be resolved within a given time." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • error

        void error​(java.lang.String aMessage,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.ERROR. "Non-urgent failures, these should be relayed to developers or admins; each item must be resolved within a given time." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • error

        void error​(java.lang.String aMessage,
                   java.lang.Throwable aThrowable)
        Logs a log message with log priority LogPriority.ERROR. "Non-urgent failures, these should be relayed to developers or admins; each item must be resolved within a given time." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
      • error

        void error​(java.lang.String aMessage,
                   java.lang.Throwable aThrowable,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.ERROR. "Non-urgent failures, these should be relayed to developers or admins; each item must be resolved within a given time." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
        aArguments - The arguments used when replacing the placeholders.
      • isLogError

        boolean isLogError()
        Determines whether the RuntimeLogger is being configured to log errors (LogPriority.ERROR). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case errors are logged.
      • critical

        void critical​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.CRITICAL. "Should be corrected immediately, but indicates failure in a secondary system, an example is a loss of a backup ISP connection." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • critical

        void critical​(java.lang.String aMessage,
                      java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.CRITICAL. "Should be corrected immediately, but indicates failure in a secondary system, an example is a loss of a backup ISP connection." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • critical

        void critical​(java.lang.String aMessage,
                      java.lang.Throwable aThrowable)
        Logs a log message with log priority LogPriority.CRITICAL. "Should be corrected immediately, but indicates failure in a secondary system, an example is a loss of a backup ISP connection." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
      • critical

        void critical​(java.lang.String aMessage,
                      java.lang.Throwable aThrowable,
                      java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.CRITICAL. "Should be corrected immediately, but indicates failure in a secondary system, an example is a loss of a backup ISP connection." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
        aArguments - The arguments used when replacing the placeholders.
      • isLogCritical

        boolean isLogCritical()
        Determines whether the RuntimeLogger is being configured to log fatal messages (LogPriority.CRITICAL). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case fatal messages are logged.
      • alert

        void alert​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.ALERT. "Should be corrected immediately, therefore notify staff who can fix the problem. An example would be the loss of a primary ISP connection." See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • alert

        void alert​(java.lang.String aMessage,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.ALERT. "Should be corrected immediately, therefore notify staff who can fix the problem. An example would be the loss of a primary ISP connection." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • alert

        void alert​(java.lang.String aMessage,
                   java.lang.Throwable aThrowable)
        Logs a log message with log priority LogPriority.ALERT.
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
      • alert

        void alert​(java.lang.String aMessage,
                   java.lang.Throwable aThrowable,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.ALERT.
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
        aArguments - The arguments used when replacing the placeholders.
      • isLogAlert

        boolean isLogAlert()
        Determines whether the RuntimeLogger is being configured to log fatal messages (LogPriority.ALERT). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case fatal messages are logged.
      • panic

        void panic​(java.lang.String aMessage)
        Logs a log message with log priority LogPriority.PANIC. "A "panic" condition usually affecting multiple apps/servers/sites. At this level it would usually notify all tech staff on call." ( See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
      • panic

        void panic​(java.lang.String aMessage,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.PANIC. "A "panic" condition usually affecting multiple apps/servers/sites. At this level it would usually notify all tech staff on call." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aArguments - The arguments used when replacing the placeholders.
      • panic

        void panic​(java.lang.String aMessage,
                   java.lang.Throwable aThrowable)
        Logs a log message with log priority LogPriority.PANIC. "A "panic" condition usually affecting multiple apps/servers/sites. At this level it would usually notify all tech staff on call." ( See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
      • panic

        void panic​(java.lang.String aMessage,
                   java.lang.Throwable aThrowable,
                   java.lang.Object... aArguments)
        Logs a log message with log priority LogPriority.PANIC. "A "panic" condition usually affecting multiple apps/servers/sites. At this level it would usually notify all tech staff on call." The placeholders in the message String are being replaced by the provided arguments. Implementations of this interface are recommended to use Java's MessageFormat's syntax, the placeholder being replaced by the first argument is identified by "{0}" (without the quotes), the second one by "{1}", the third one by "{3}" and so on: Given the message to be "{0} + {1} = {2}" and the three argument be x, y and x + y, then "{0}" is replaced by the value of x, "{1}" is replaced by the value of y and "{2}" is replaced by the value of x + y. See also http://en.wikipedia.org/wiki/Syslog
        Parameters:
        aMessage - The message to be logged.
        aThrowable - An exception that the message should contain.
        aArguments - The arguments used when replacing the placeholders.
      • isLogPanic

        boolean isLogPanic()
        Determines whether the RuntimeLogger is being configured to log fatal messages (LogPriority.PANIC). This method is useful to prevent the generation of vast amounts of log message String objects (and according processing) for the according LogPriority in case them messages of that LogPriority are not logged at all.
        Returns:
        True in case fatal messages are logged.
      • printSeparator

        default void printSeparator()
        Prints a separator line in case the underlying Logger supports the such. A separator line may be printed just as of beautifying purposes and does not belong to the actual log's data. Therefore this method may just do nothing, depending on the implementing class.