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());
}
}
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()));
}
}
}
}
Aggregations