use of ch.qos.logback.core.status.OnConsoleStatusListener in project sling by apache.
the class LogbackManager method configure.
private void configure(ConfiguratorCallback cb) {
long startTime = System.currentTimeMillis();
StatusListener statusListener = new StatusListenerAsList();
if (debug) {
statusListener = new OnConsoleStatusListener();
}
getStatusManager().add(statusListener);
addInfo("Resetting context: " + getLoggerContext().getName());
resetContext(statusListener);
StatusUtil statusUtil = new StatusUtil(getLoggerContext());
JoranConfigurator configurator = createConfigurator();
final List<SaxEvent> eventList = configurator.recallSafeConfiguration();
final long threshold = System.currentTimeMillis();
boolean success = false;
try {
cb.perform(configurator);
if (statusUtil.hasXMLParsingErrors(threshold)) {
cb.fallbackConfiguration(eventList, createConfigurator(), statusListener);
}
addInfo("Context: " + getLoggerContext().getName() + " reloaded.");
success = true;
} catch (Throwable t) {
//Need to catch any error as Logback must work in all scenarios
//The error would be dumped to sysout in later call to Status printer
addError("Error occurred while configuring Logback", t);
} finally {
if (!success) {
cb.fallbackConfiguration(eventList, createConfigurator(), statusListener);
}
getStatusManager().remove(statusListener);
SlingStatusPrinter.printInCaseOfErrorsOrWarnings(getLoggerContext(), resetStartTime, startTime, success);
}
}
use of ch.qos.logback.core.status.OnConsoleStatusListener in project cdap by caskdata.
the class LogAppenderInitializer method initialize.
@VisibleForTesting
public synchronized void initialize(String loggerName) {
LoggerContext loggerContext = getLoggerContext();
if (loggerContext != null) {
Logger logger = loggerContext.getLogger(loggerName);
// Check if the logger already contains the logAppender
if (Iterators.contains(logger.iteratorForAppenders(), logAppender)) {
LOG.warn("Log appender {} is already initialized.", logAppender.getName());
return;
}
logAppender.setContext(loggerContext);
LOG.info("Initializing log appender {}", logAppender.getName());
// Display any errors during initialization of log appender to console
StatusManager statusManager = loggerContext.getStatusManager();
OnConsoleStatusListener onConsoleListener = new OnConsoleStatusListener();
statusManager.add(onConsoleListener);
logAppender.start();
logger.addAppender(logAppender);
}
}
Aggregations