Module org.snmp4j

Class LogFactory

  • Direct Known Subclasses:
    ConsoleLogFactory, JavaLogFactory

    public class LogFactory
    extends java.lang.Object
    The LogFactory singleton is used by SNMP4J to determine the logging framework used to process SNMP4J log messages. By default NoLogger instances are used.
    Since:
    1.2.1
    Version:
    3.4.1
    • Field Detail

      • SNMP4J_LOG_FACTORY_SYSTEM_PROPERTY

        public static final java.lang.String SNMP4J_LOG_FACTORY_SYSTEM_PROPERTY
        See Also:
        Constant Field Values
      • SNMP4J_LOG_FACTORY_LOGGER_DEFAULT_PREFIX

        public static final java.lang.String SNMP4J_LOG_FACTORY_LOGGER_DEFAULT_PREFIX
        See Also:
        Constant Field Values
      • SNMP4J_LOG_FACTORY_LOG_HANDLER_DEFAULT_PREFIX

        public static final java.lang.String SNMP4J_LOG_FACTORY_LOG_HANDLER_DEFAULT_PREFIX
        See Also:
        Constant Field Values
      • SNMP4J_LOG_LEVEL

        public static final java.lang.String SNMP4J_LOG_LEVEL
        See Also:
        Constant Field Values
      • SNMP4J_LOG_HANDLER

        public static final java.lang.String SNMP4J_LOG_HANDLER
        See Also:
        Constant Field Values
      • SNMP4J_LOG_HANDLER_LIST

        public static final java.lang.String SNMP4J_LOG_HANDLER_LIST
        See Also:
        Constant Field Values
      • snmp4jLogFactory

        private static LogFactory snmp4jLogFactory
      • configChecked

        private static boolean configChecked
      • loggerConfigPrefix

        private java.lang.String loggerConfigPrefix
      • logHandlerConfigPrefix

        private java.lang.String logHandlerConfigPrefix
      • configurationLock

        private final java.util.concurrent.locks.ReentrantLock configurationLock
    • Constructor Detail

      • LogFactory

        public LogFactory()
    • Method Detail

      • getLogger

        public static LogAdapter getLogger​(java.lang.Class<?> c)
        Gets the logger for the supplied class.
        Parameters:
        c - the class for which a logger needs to be created.
        Returns:
        the LogAdapter instance.
      • checkConfig

        private static void checkConfig()
      • getFactoryFromSystemProperty

        private static void getFactoryFromSystemProperty()
      • getRootLogger

        public LogAdapter getRootLogger()
        Returns the top level logger.
        Returns:
        a LogAdapter instance.
        Since:
        1.7
      • getLogger

        public static LogAdapter getLogger​(java.lang.String className)
        Gets the logger for the supplied class name.
        Parameters:
        className - the class name for which a logger needs to be created.
        Returns:
        the LogAdapter instance.
        Since:
        1.7
      • createLogger

        protected LogAdapter createLogger​(java.lang.Class<?> c)
        Creates a Logger for the specified class. This method returns the NoLogger logger instance which disables logging. Overwrite this method the return a custom logger to enable logging for SNMP4J.
        Parameters:
        c - the class for which a logger needs to be created.
        Returns:
        the LogAdapter instance.
      • createLogger

        protected LogAdapter createLogger​(java.lang.String className)
        Creates a Logger for the specified class. This method returns the NoLogger logger instance which disables logging. Overwrite this method the return a custom logger to enable logging for SNMP4J.
        Parameters:
        className - the class name for which a logger needs to be created.
        Returns:
        the LogAdapter instance.
        Since:
        1.7
      • setLogFactory

        public static void setLogFactory​(LogFactory factory)
        Sets the log factory to be used by SNMP4J. Call this method before any other SNMP4J class is referenced or created to set and use a custom log factory.
        Parameters:
        factory - a LogFactory instance.
      • loggers

        public java.util.Iterator<LogAdapter> loggers()
        Returns all available LogAdapters in depth first order.
        Returns:
        a read-only Iterator.
        Since:
        1.7
      • resetLogger

        public void resetLogger​(LogAdapter logger)
        Close all handlers of a logger and set its level to null if it is not the root logger.
        Parameters:
        logger - the logger to be reset.
        Since:
        3.4.1
      • getLoggerConfigPrefix

        public java.lang.String getLoggerConfigPrefix()
      • setLoggerConfigPrefix

        public void setLoggerConfigPrefix​(java.lang.String loggerConfigPrefix)
        Set the properties name prefix, including the trailing ".", used by updateConfiguration(Properties) and writeConfiguration(Properties) for logger properties.
        Parameters:
        loggerConfigPrefix - the prefix for LogAdapter configuration properties.
        Since:
        3.4.1
      • getLogHandlerConfigPrefix

        public java.lang.String getLogHandlerConfigPrefix()
      • setLogHandlerConfigPrefix

        public void setLogHandlerConfigPrefix​(java.lang.String logHandlerConfigPrefix)
        Set the properties name prefix, including the trailing ".", used by updateConfiguration(Properties) and writeConfiguration(Properties) for log handler properties.
        Parameters:
        logHandlerConfigPrefix - the prefix for log handler configuration properties.
        Since:
        3.4.1
      • reset

        public void reset()
        Reset the logging configuration. For all named log adapters, the reset operation removes and closes all handlers (log factory specific) and (except for the root logger) sets the level to null. The root logger's level is set to LogLevel.INFO.
        Since:
        3.4.1
      • updateConfiguration

        public void updateConfiguration​(java.util.Properties config)
        Configure the log levels of the LogAdapter specified in the Properties provided by the propertiesReader parameter. For example:
             snmp4j.log.level.<loggerName>=<LogLevel>
         
        Parameters:
        config - the Properties that contain properties with the prefixes getLoggerConfigPrefix() and getLogHandlerConfigPrefix().
      • extractConfigProperty

        private void extractConfigProperty​(java.util.Properties newProperties,
                                           java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>> config,
                                           java.lang.String key)
      • removeAllHandlers

        protected void removeAllHandlers​(LogAdapter logAdapter)
      • addHandler

        protected void addHandler​(LogAdapter logAdapter,
                                  java.lang.String handlerName,
                                  java.util.Map<java.lang.String,​java.lang.String> handlerConfig)
      • updateLogger

        protected void updateLogger​(LogAdapter logAdapter,
                                    java.util.Map<java.lang.String,​java.lang.String> loggerConfig)
      • writeConfiguration

        public void writeConfiguration​(java.util.Properties config)
      • writeConfiguration

        protected void writeConfiguration​(java.util.Properties config,
                                          LogAdapter logAdapter)
      • writeConfiguration

        protected java.lang.String writeConfiguration​(java.util.Properties config,
                                                      LogAdapter logAdapter,
                                                      java.lang.Object handler)