Class Logger


  • public abstract class Logger
    extends Object
    The FreeMarker logging facility. This is a polymorphic implementation that will use whatever logging package it can find on the system: SLF4J, Apache Commons Logging, Apache Log4J, Apache Avalon LogKit, java.util.logging (in this order). If it fails to find any of the above, logging will be suppressed and a short notice will be printed to System.err.

    You can use the selectLoggerLibrary(int) static method to force use of a specific logger package, or to turn off logging.

    • Constructor Detail

      • Logger

        public Logger()
    • Method Detail

      • selectLoggerLibrary

        public static void selectLoggerLibrary​(int library)
                                        throws ClassNotFoundException
        Selects the logger library to use. If you want to change the default setting, do it early in application initialization phase, before calling any other FreeMarker API since once various parts of the FreeMarker library bind to the logging subsystem, the change in this value will have no effect on them.
        Parameters:
        library - one of LIBRARY_XXX constants. By default, LIBRARY_AUTO is used.
        Throws:
        ClassNotFoundException - if an explicit logging library is asked for (that is, neither NONE, nor AUTO), and it is not found in the classpath.
      • setCategoryPrefix

        public static void setCategoryPrefix​(String prefix)
        Sets a category prefix. This prefix is prepended to any logger category name. This makes it possible to have different FreeMarker logger categories on a per-application basis (better said, per-classloader basis). By default the category prefix is the empty string. If you set a non-empty category prefix, be sure to include the trailing separator dot (i.e. "MyApp.") If you want to change the default setting, do it early in application initialization phase, before calling any other FreeMarker API since once various parts of the FreeMarker library bind to the logging subsystem, the change in this value will have no effect on them.
      • debug

        public abstract void debug​(String message)
        Logs a debugging message.
      • debug

        public abstract void debug​(String message,
                                   Throwable t)
        Logs a debugging message with accompanying throwable.
      • info

        public abstract void info​(String message)
        Logs an informational message.
      • info

        public abstract void info​(String message,
                                  Throwable t)
        Logs an informational message with accompanying throwable.
      • warn

        public abstract void warn​(String message)
        Logs a warning message.
      • warn

        public abstract void warn​(String message,
                                  Throwable t)
        Logs a warning message with accompanying throwable.
      • error

        public abstract void error​(String message)
        Logs an error message.
      • error

        public abstract void error​(String message,
                                   Throwable t)
        Logs an error message with accompanying throwable.
      • isDebugEnabled

        public abstract boolean isDebugEnabled()
        Returns true if this logger will log debug messages.
      • isInfoEnabled

        public abstract boolean isInfoEnabled()
        Returns true if this logger will log informational messages.
      • isWarnEnabled

        public abstract boolean isWarnEnabled()
        Returns true if this logger will log warning messages.
      • isErrorEnabled

        public abstract boolean isErrorEnabled()
        Returns true if this logger will log error messages.
      • isFatalEnabled

        public abstract boolean isFatalEnabled()
        Returns true if this logger will log fatal error messages.
      • getLogger

        public static Logger getLogger​(String category)
        Returns a logger for the specified category.
        Parameters:
        category - a dot separated hierarchical category name. If a category prefix is in effect, it is prepended to the category name.