Class BasicLogManager

    • Constructor Detail

      • BasicLogManager

        public BasicLogManager​(Logger pLogger)
        Constructor which allows to customize where this logger delegates to.

        The feature of truncating long log messages is disabled.

        Parameters:
        pLogger - The Java logger where this logger delegates to.
      • BasicLogManager

        public BasicLogManager​(Logger pLogger,
                               int pTruncateSize)
        Constructor which allows to customize where this logger delegates to.
        Parameters:
        pLogger - The Java logger where this logger delegates to.
        pTruncateSize - A positive integer threshold for truncating long log messages, or 0 to disable truncation.
    • Method Detail

      • createWithHandler

        public static LogManager createWithHandler​(Handler handler)
        Create a BasicLogManager which delegates to a new logger with only the given Handler.
        Parameters:
        handler - The target handler.
      • create

        public static LogManager create​(LoggingOptions options)
        Create a BasicLogManager which logs to a file and the console according to specified options.

        This also adds an MXBean that allows runtime control of some logging options.

        Most users will want to use create(Configuration) instead.

      • withComponentName

        public LogManager withComponentName​(String pName)
        Description copied from interface: LogManager
        Returns a new LogManager instance which may use the given name as an indicator from which component a log message comes from.
        Specified by:
        withComponentName in interface LogManager
        Parameters:
        pName - A non-empty string.
        Returns:
        A LogManager instance.
      • wouldBeLogged

        public boolean wouldBeLogged​(Level priority)
        Returns true if a message with the given log level would be logged.
        Specified by:
        wouldBeLogged in interface LogManager
        Parameters:
        priority - the log level
        Returns:
        whether this log level is enabled
      • log

        public void log​(Level priority,
                        Object... args)
        Logs any message occurring during program execution. The message is constructed lazily by concatenating the parts with " ". The caller should not use string concatenation to create the message in order to increase performance if the message is never logged.
        Specified by:
        log in interface LogManager
        Parameters:
        priority - the log level for the message
        args - the parts of the message (can be an arbitrary number of objects whose Object.toString() method is called)
      • log

        public void log​(Level priority,
                        Supplier<String> msgSupplier)
        Description copied from interface: LogManager
        Logs any message occurring during program execution. The message is constructed lazily by asking the provided supplier if necessary.
        Specified by:
        log in interface LogManager
        Parameters:
        priority - the log level for the message
        msgSupplier - a supplier for a non-null log message
      • logf

        public void logf​(Level priority,
                         String format,
                         Object... args)
        Logs any message occurring during program execution. The message is constructed lazily from String.format(format, args).
        Specified by:
        logf in interface LogManager
        Parameters:
        priority - the log level for the message
        format - The format string.
        args - The arguments for the format string.
      • logUserException

        public void logUserException​(Level priority,
                                     Throwable e,
                                     @Nullable String pAdditionalMessage)
        Log a message by printing its message to the user. The details (e.g., stack trace) are hidden from the user and logged with a lower log level.

        Use this method in cases where an expected exception with a useful error message is thrown, e.g. an InvalidConfigurationException.

        If you want to log an IOException because of a write error, it is recommended to write the message like "Could not write FOO to file". The final message will then be "Could not write FOO to file FOO.txt (REASON)".

        Specified by:
        logUserException in interface LogManager
        Parameters:
        priority - the log level for the message
        e - the occurred exception
        pAdditionalMessage - an optional message
      • logfUserException

        public void logfUserException​(Level priority,
                                      Throwable e,
                                      String format,
                                      Object... args)
        Log a message by printing its message to the user. The details (e.g., stack trace) are hidden from the user and logged with a lower log level.

        Use this method in cases where an expected exception with a useful error message is thrown, e.g. an InvalidConfigurationException.

        The message is constructed lazily from String.format(format, args). To make individual arguments lazy, use MoreStrings.lazyString(Supplier).

        If you want to log an IOException because of a write error, it is recommended to write the message like "Could not write FOO to file". The final message will then be "Could not write FOO to file FOO.txt (REASON)".

        Specified by:
        logfUserException in interface LogManager
        Parameters:
        priority - the log level for the message
        e - the occurred exception
        format - The format string.
        args - The arguments for the format string.
      • logDebugException

        public void logDebugException​(Throwable pE,
                                      @Nullable String pAdditionalMessage)
        Log an exception solely for the purpose of debugging. In default configuration, this exception is not shown to the user!

        Use this method when you want to log an exception that was handled by the catching site, but you don't want to forget the information completely.

        Specified by:
        logDebugException in interface LogManager
        Parameters:
        pE - the occurred exception
        pAdditionalMessage - an optional message
      • logDebugException

        public void logDebugException​(Throwable e)
        Log an exception solely for the purpose of debugging. In default configuration, this exception is not shown to the user!

        Use this method when you want to log an exception that was handled by the catching site, but you don't want to forget the information completely.

        Specified by:
        logDebugException in interface LogManager
        Parameters:
        e - the occurred exception
      • logfDebugException

        public void logfDebugException​(Throwable e,
                                       String format,
                                       Object... args)
        Log an exception solely for the purpose of debugging. In default configuration, this exception is not shown to the user!

        Use this method when you want to log an exception that was handled by the catching site, but you don't want to forget the information completely.

        The message is constructed lazily from String.format(format, args). To make individual arguments lazy, use MoreStrings.lazyString(Supplier).

        Specified by:
        logfDebugException in interface LogManager
        Parameters:
        e - the occurred exception
        format - The format string.
        args - The arguments for the format string.
      • logException

        public void logException​(Level pPriority,
                                 Throwable pE,
                                 @Nullable String pAdditionalMessage)
        Description copied from interface: LogManager
        Log an exception by printing the full details to the user.

        This method should only be used in cases where logUserException and logDebugException are not acceptable.

        Specified by:
        logException in interface LogManager
        Parameters:
        pPriority - the log level for the message
        pE - the occurred exception
        pAdditionalMessage - an optional message
      • logfException

        public void logfException​(Level priority,
                                  Throwable e,
                                  String format,
                                  Object... args)
        Log an exception by printing the full details to the user.

        This method should only be used in cases where logUserException and logDebugException are not acceptable.

        The message is constructed lazily from String.format(format, args). To make individual arguments lazy, use MoreStrings.lazyString(Supplier).

        Specified by:
        logfException in interface LogManager
        Parameters:
        priority - the log level for the message
        e - the occurred exception
        format - The format string.
        args - The arguments for the format string.
      • flush

        public void flush()
        Description copied from interface: LogManager
        Flush all handlers of this logger.
        Specified by:
        flush in interface LogManager