Class AbstractConfiguration

    • Field Detail

      • rootNode

        protected Node rootNode
        The root node of the configuration.
      • pluginPackages

        protected final List<String> pluginPackages
        Packages found in configuration "packages" attribute.
      • pluginManager

        protected PluginManager pluginManager
        The plugin manager.
      • isShutdownHookEnabled

        protected boolean isShutdownHookEnabled
        Shutdown hook is enabled by default.
      • shutdownTimeoutMillis

        protected long shutdownTimeoutMillis
        Shutdown timeout in milliseconds.
      • scriptManager

        protected ScriptManager scriptManager
        The Script manager.
    • Method Detail

      • getPluginPackages

        public List<String> getPluginPackages()
        Description copied from interface: Configuration
        Returns the list of packages to scan for plugins for this Configuration.
        Specified by:
        getPluginPackages in interface Configuration
        Returns:
        the list of plugin packages.
      • setScriptManager

        public void setScriptManager​(ScriptManager scriptManager)
      • setPluginManager

        public void setPluginManager​(PluginManager pluginManager)
      • getRootNode

        public Node getRootNode()
      • stop

        public boolean stop​(long timeout,
                            TimeUnit timeUnit)
        Tear down the configuration.
        Specified by:
        stop in interface LifeCycle2
        Overrides:
        stop in class AbstractFilterable
        Parameters:
        timeout - the maximum time to wait
        timeUnit - the time unit of the timeout argument
        Returns:
        true if the receiver was stopped cleanly and normally, false otherwise.
      • setup

        public void setup()
      • getDefaultStatus

        protected Level getDefaultStatus()
      • preConfigure

        protected void preConfigure​(Node node)
      • doConfigure

        protected void doConfigure()
      • setToDefault

        protected void setToDefault()
      • setName

        public void setName​(String name)
        Set the name of the configuration.
        Parameters:
        name - The name.
      • getName

        public String getName()
        Returns the name of the configuration.
        Specified by:
        getName in interface Configuration
        Returns:
        the name of the configuration.
      • addListener

        public void addListener​(ConfigurationListener listener)
        Add a listener for changes on the configuration.
        Specified by:
        addListener in interface Configuration
        Parameters:
        listener - The ConfigurationListener to add.
      • getAppender

        public <T extends Appender> T getAppender​(String appenderName)
        Returns the Appender with the specified name.
        Specified by:
        getAppender in interface Configuration
        Type Parameters:
        T - The expected Appender type.
        Parameters:
        appenderName - The name of the Appender.
        Returns:
        the Appender with the specified name or null if the Appender cannot be located.
      • getAppenders

        public Map<String,​Appender> getAppenders()
        Returns a Map containing all the Appenders and their name.
        Specified by:
        getAppenders in interface Configuration
        Returns:
        A Map containing each Appender's name and the Appender object.
      • addAppender

        public void addAppender​(Appender appender)
        Adds an Appender to the configuration.
        Specified by:
        addAppender in interface Configuration
        Parameters:
        appender - The Appender to add.
      • addLoggerAppender

        public void addLoggerAppender​(Logger logger,
                                      Appender appender)
        Associates an Appender with a LoggerConfig. This method is synchronized in case a Logger with the same name is being updated at the same time. Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
        Specified by:
        addLoggerAppender in interface Configuration
        Parameters:
        logger - The Logger the Appender will be associated with.
        appender - The Appender.
      • addLoggerFilter

        public void addLoggerFilter​(Logger logger,
                                    Filter filter)
        Associates a Filter with a LoggerConfig. This method is synchronized in case a Logger with the same name is being updated at the same time. Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
        Specified by:
        addLoggerFilter in interface Configuration
        Parameters:
        logger - The Logger the Footer will be associated with.
        filter - The Filter.
      • setLoggerAdditive

        public void setLoggerAdditive​(Logger logger,
                                      boolean additive)
        Marks a LoggerConfig as additive. This method is synchronized in case a Logger with the same name is being updated at the same time. Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
        Specified by:
        setLoggerAdditive in interface Configuration
        Parameters:
        logger - The Logger the Appender will be associated with.
        additive - True if the LoggerConfig should be additive, false otherwise.
      • removeAppender

        public void removeAppender​(String appenderName)
        Remove an Appender. First removes any associations between LoggerConfigs and the Appender, removes the Appender from this appender list and then stops the appender. This method is synchronized in case an Appender with the same name is being added during the removal.
        Parameters:
        appenderName - the name of the appender to remove.
      • getCustomLevels

        public List<CustomLevelConfig> getCustomLevels()
        Description copied from interface: Configuration

        Returns a list of descriptors of the custom levels defined in the current configuration. The returned list does not include custom levels that are defined in code with direct calls to Level.forName(String, int).

        Note that the list does not include levels of previous configurations. For example, suppose a configuration contains custom levels A, B and C. The configuration is then modified to contain custom levels B, C and D. For the new configuration, this method will return only {B, C, D}, that is, only the custom levels defined in this configuration. The previously defined level A still exists (and can be obtained with Level.getLevel(String)), it is just not in the current configuration. Level.values() will return {A, B, C, D and the built-in levels}.

        Specified by:
        getCustomLevels in interface Configuration
        Returns:
        the custom levels defined in the current configuration
      • getLoggerConfig

        public LoggerConfig getLoggerConfig​(String loggerName)
        Locates the appropriate LoggerConfig for a Logger name. This will remove tokens from the package name as necessary or return the root LoggerConfig if no other matches were found.
        Specified by:
        getLoggerConfig in interface Configuration
        Parameters:
        loggerName - The Logger name.
        Returns:
        The located LoggerConfig.
      • getLoggers

        public Map<String,​LoggerConfig> getLoggers()
        Returns a Map of all the LoggerConfigs.
        Specified by:
        getLoggers in interface Configuration
        Returns:
        a Map with each entry containing the name of the Logger and the LoggerConfig.
      • getLogger

        public LoggerConfig getLogger​(String loggerName)
        Returns the LoggerConfig with the specified name.
        Parameters:
        loggerName - The Logger name.
        Returns:
        The LoggerConfig or null if no match was found.
      • addLogger

        public void addLogger​(String loggerName,
                              LoggerConfig loggerConfig)
        Add a loggerConfig. The LoggerConfig must already be configured with Appenders, Filters, etc. After addLogger is called LoggerContext.updateLoggers must be called.
        Specified by:
        addLogger in interface Configuration
        Parameters:
        loggerName - The name of the Logger.
        loggerConfig - The LoggerConfig.
      • removeLogger

        public void removeLogger​(String loggerName)
        Remove a LoggerConfig.
        Specified by:
        removeLogger in interface Configuration
        Parameters:
        loggerName - The name of the Logger.
      • toByteArray

        protected static byte[] toByteArray​(InputStream is)
                                     throws IOException
        Reads an InputStream using buffered reads into a byte array buffer. The given InputStream will remain open after invocation of this method.
        Parameters:
        is - the InputStream to read into a byte array buffer.
        Returns:
        a byte array of the InputStream contents.
        Throws:
        IOException - if the read method of the provided InputStream throws this exception.
      • setNanoClock

        public void setNanoClock​(NanoClock nanoClock)
        Description copied from interface: Configuration
        Sets the NanoClock instance for this configuration.
        Specified by:
        setNanoClock in interface Configuration
        Parameters:
        nanoClock - the new nano clock for this configuration. Must be non-null.