Search in sources :

Example 1 with Watcher

use of org.apache.logging.log4j.core.util.Watcher in project logging-log4j2 by apache.

the class AbstractConfiguration method monitorSource.

private void monitorSource(final Reconfigurable reconfigurable, final ConfigurationSource configSource) {
    if (configSource.getLastModified() > 0) {
        final Source cfgSource = new Source(configSource);
        final Watcher watcher = WatcherFactory.getInstance(pluginPackages).newWatcher(cfgSource, this, reconfigurable, listeners, configSource.getLastModified());
        if (watcher != null) {
            watchManager.watch(cfgSource, watcher);
        }
    } else {
        LOGGER.info("{} does not support dynamic reconfiguration", configSource.getURI());
    }
}
Also used : Watcher(org.apache.logging.log4j.core.util.Watcher) Source(org.apache.logging.log4j.core.util.Source)

Example 2 with Watcher

use of org.apache.logging.log4j.core.util.Watcher in project logging-log4j2 by apache.

the class CompositeConfiguration method setup.

@Override
public void setup() {
    final AbstractConfiguration targetConfiguration = configurations.get(0);
    staffChildConfiguration(targetConfiguration);
    final WatchManager watchManager = getWatchManager();
    final WatchManager targetWatchManager = targetConfiguration.getWatchManager();
    if (targetWatchManager.getIntervalSeconds() > 0) {
        watchManager.setIntervalSeconds(targetWatchManager.getIntervalSeconds());
        final Map<Source, Watcher> watchers = targetWatchManager.getConfigurationWatchers();
        for (final Map.Entry<Source, Watcher> entry : watchers.entrySet()) {
            watchManager.watch(entry.getKey(), entry.getValue().newWatcher(this, listeners, entry.getValue().getLastModified()));
        }
    }
    for (final AbstractConfiguration sourceConfiguration : configurations.subList(1, configurations.size())) {
        staffChildConfiguration(sourceConfiguration);
        final Node sourceRoot = sourceConfiguration.getRootNode();
        mergeStrategy.mergeConfigurations(rootNode, sourceRoot, getPluginManager());
        if (LOGGER.isEnabled(Level.ALL)) {
            final StringBuilder sb = new StringBuilder();
            printNodes("", rootNode, sb);
            System.out.println(sb.toString());
        }
        final int monitorInterval = sourceConfiguration.getWatchManager().getIntervalSeconds();
        if (monitorInterval > 0) {
            final int currentInterval = watchManager.getIntervalSeconds();
            if (currentInterval <= 0 || monitorInterval < currentInterval) {
                watchManager.setIntervalSeconds(monitorInterval);
            }
            final WatchManager sourceWatchManager = sourceConfiguration.getWatchManager();
            final Map<Source, Watcher> watchers = sourceWatchManager.getConfigurationWatchers();
            for (final Map.Entry<Source, Watcher> entry : watchers.entrySet()) {
                watchManager.watch(entry.getKey(), entry.getValue().newWatcher(this, listeners, entry.getValue().getLastModified()));
            }
        }
    }
}
Also used : AbstractConfiguration(org.apache.logging.log4j.core.config.AbstractConfiguration) Node(org.apache.logging.log4j.plugins.Node) Watcher(org.apache.logging.log4j.core.util.Watcher) Map(java.util.Map) WatchManager(org.apache.logging.log4j.core.util.WatchManager) Source(org.apache.logging.log4j.core.util.Source) ConfigurationSource(org.apache.logging.log4j.core.config.ConfigurationSource)

Aggregations

Source (org.apache.logging.log4j.core.util.Source)2 Watcher (org.apache.logging.log4j.core.util.Watcher)2 Map (java.util.Map)1 AbstractConfiguration (org.apache.logging.log4j.core.config.AbstractConfiguration)1 ConfigurationSource (org.apache.logging.log4j.core.config.ConfigurationSource)1 WatchManager (org.apache.logging.log4j.core.util.WatchManager)1 Node (org.apache.logging.log4j.plugins.Node)1