Class LoggerFactory<L>

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected LoggerFactory​(Class<L> loggerClass)
      Creates a new factory.
    • Constructor Detail

      • LoggerFactory

        protected LoggerFactory​(Class<L> loggerClass)
        Creates a new factory.
        Parameters:
        loggerClass - The class of the wrapped logger.
    • Method Detail

      • getLogger

        public Logger getLogger​(String name)
        Returns the logger of the specified name, or null. If this method has already been invoked previously with the same name argument, then it may returns the same logger provided that:
        • the logger has not yet been garbage collected;
        • the implementation instance (Log4J, SLF4J, etc.) returned by getImplementation(name) has not changed.
        Otherwise this method returns a new Logger instance, or null if the standard Java logging framework should be used.
        Parameters:
        name - The name of the logger.
        Returns:
        The logger, or null.
      • getImplementationClass

        public Class<L> getImplementationClass()
        Returns the base class of objects to be returned by getImplementation(java.lang.String). The class depends on the underlying logging framework (Log4J, SLF4J, etc.).
      • getImplementation

        protected abstract L getImplementation​(String name)
        Returns the implementation to use for the logger of the specified name. The object to be returned depends on the logging framework (Log4J, SLF4J, etc.). If the target framework redirects logging events to Java logging, then this method should returns null since we should not use wrapper at all.
        Parameters:
        name - The name of the logger.
        Returns:
        The logger as an object of the target logging framework (Log4J, SLF4J, etc.), or null if the target framework would redirect to the Java logging framework.
      • wrap

        protected abstract Logger wrap​(String name,
                                       L implementation)
        Wraps the specified implementation in a Java logger.
        Parameters:
        name - The name of the logger.
        implementation - An implementation returned by getImplementation(java.lang.String).
        Returns:
        A new logger wrapping the specified implementation.
      • unwrap

        protected abstract L unwrap​(Logger logger)
        Returns the implementation wrapped by the specified logger, or null if none. If the specified logger is not an instance of the expected class, then this method should returns null.
        Parameters:
        logger - The logger to test.
        Returns:
        The implementation wrapped by the specified logger, or null if none.
      • lookupConfiguration

        public String lookupConfiguration()
        Look up configuration information, or null unknown.

        Report back details on how logging configuration is setup. Ideally including configuration filename along with any system properties used.

        Returns:
        configuration information, or null unknown.