@Override public void reset() { CHANGE_LOGGER_CONTEXT_LOCK.lock(); try { // Flush all the loggers and reinstate only the console logger as a // sane default. loggerContext.stop(); final Logger logger = loggerContext.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); logger.detachAndStopAllAppenders(); final DropwizardLayout formatter = new DropwizardLayout(loggerContext, TimeZone.getDefault()); formatter.start(); final LayoutWrappingEncoder<ILoggingEvent> layoutEncoder = new LayoutWrappingEncoder<>(); layoutEncoder.setLayout(formatter); final ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<>(); consoleAppender.addFilter(new ThresholdLevelFilterFactory().build(Level.INFO)); consoleAppender.setEncoder(layoutEncoder); consoleAppender.setContext(loggerContext); consoleAppender.start(); logger.addAppender(consoleAppender); loggerContext.start(); } finally { CHANGE_LOGGER_CONTEXT_LOCK.unlock(); } }
public Logger buildTaskLogger(String taskId, String executorId, String executorPid, String taskLogFile) { LOG.info("Building a task logger for {} pointing to {}", taskId, taskLogFile); LoggerContext context = new LoggerContext(); context.setName(executorPid); baseLogging.prepareRootLogger(context); String loggerId = taskId; try { SingularityTaskId singularityTaskId = SingularityTaskId.valueOf(taskId); loggerId = String.format("%s.%s.%s.%s.%s", singularityTaskId.getRequestId(), singularityTaskId.getDeployId(), singularityTaskId.getStartedAt(), singularityTaskId.getInstanceNo(), executorId); } catch (InvalidSingularityTaskIdException e) { LOG.info("Handling non-SingularityTaskId %s", taskId); } Logger taskLogger = context.getLogger(loggerId); taskLogger.detachAndStopAllAppenders(); if (baseLogging.getRootLogPath().isPresent()) { taskLogger.addAppender(baseLogging.buildFileAppender(context, baseLogging.getRootLogPath().get())); } taskLogger.addAppender(baseLogging.buildFileAppender(context, taskLogFile)); context.start(); return taskLogger; }
/** * Starts this context. */ public void start() { loggerContext.start(); }
/** * Starts this context. */ public void start() { loggerContext.start(); }
ctx.start(config);
@Test public void testNotifyOnStart() { context.start(); assertEquals(UpdateType.START, listener.updateType); assertEquals(listener.context, context); }
configurator.setContext(context); configurator.doConfigure(url); context.start(); } catch (JoranException e) { StatusPrinter.print(context);
private static void configure(final String loggingPath, final String logLevel, final String rootLogLevel, final boolean resetLoggingContext) { if (ALREADY_CONFIGURED.getAndSet(true)) { return; } final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); if (lc.isStarted()) { return; } final StatusManager sm = lc.getStatusManager(); if (sm != null) { sm.add(new InfoStatus("Setting up dswarm configuration.", lc)); } if (resetLoggingContext) { lc.reset(); } final Level level = Level.toLevel(logLevel, Level.INFO); final Level rootLevel = Level.toLevel(rootLogLevel, Level.INFO); configureLogback(loggingPath, lc, level, rootLevel); lc.start(); }
@Before public void setUp() throws Exception { context = new LoggerContext(); context.setName("test"); context.start(); logger = context.getLogger(TurboFilteringInLoggerTest.class); }
/** * Initialize LOGBack from the given URL. * * @param url the url pointing to the location of the config file. * @param installJULBridge set to true to install SLF4J JUL bridge * @throws IllegalArgumentException if the url points to a non existing location or an error occurs during the parsing operation. */ public static void initLogging(URL url, boolean installJULBridge) { StaticLoggerBinder.getSingleton(); ContextSelector selector = ContextSelectorStaticBinder.getSingleton().getContextSelector(); LoggerContext loggerContext = selector.getLoggerContext(); loggerContext.stop(); ContextInitializer ctxi = new ContextInitializer(loggerContext); try { ctxi.configureByResource(url); loggerContext.start(); if (installJULBridge) { //uninstall already present handlers we want to //continue logging through SLF4J after this point Logger l = LogManager.getLogManager().getLogger(""); for (Handler h : l.getHandlers()) { l.removeHandler(h); } SLF4JBridgeHandler.install(); } } catch (JoranException e) { throw new IllegalArgumentException("exception while initializing LOGBack", e); } }
/** * Loads a logging configuration in to the active logger context. Error messages are printed out to the status * manager. * * @param loggingConfig logging configuration file * * @throws ServiceException thrown is there is a problem loading the logging configuration */ protected void loadLoggingConfiguration(final InputStream loggingConfig) { try { loggerContext.reset(); loadIdPHomeProperty(); final JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(loggerContext); configurator.doConfigure(loggingConfig); loggerContext.start(); logImplementationDetails(); } catch (final JoranException e) { throw new ServiceException(e); } }
/** * Loads the logging configuration. * * @param configDir IdP configuration directory */ private static void loadLoggingConfiguration(String configDir) { String loggingConfig = configDir + File.separator + "logging.xml"; LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusManager statusManager = loggerContext.getStatusManager(); statusManager.add(new InfoStatus("Loading logging configuration file: " + loggingConfig, null)); try { // loggerContext.stop(); loggerContext.reset(); JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(loggerContext); configurator.doConfigure(new FileInputStream(loggingConfig)); loggerContext.start(); } catch (JoranException e) { statusManager.add(new ErrorStatus("Error loading logging configuration file: " + configDir, null, e)); } catch (IOException e) { statusManager.add(new ErrorStatus("Error loading logging configuration file: " + configDir, null, e)); } }
@Override public void reset() { CHANGE_LOGGER_CONTEXT_LOCK.lock(); try { // Flush all the loggers and reinstate only the console logger as a // sane default. loggerContext.stop(); final Logger logger = loggerContext.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); logger.detachAndStopAllAppenders(); final DropwizardLayout formatter = new DropwizardLayout(loggerContext, TimeZone.getDefault()); formatter.start(); final LayoutWrappingEncoder<ILoggingEvent> layoutEncoder = new LayoutWrappingEncoder<>(); layoutEncoder.setLayout(formatter); final ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<>(); consoleAppender.addFilter(new ThresholdLevelFilterFactory().build(Level.INFO)); consoleAppender.setEncoder(layoutEncoder); consoleAppender.setContext(loggerContext); consoleAppender.start(); logger.addAppender(consoleAppender); loggerContext.start(); } finally { CHANGE_LOGGER_CONTEXT_LOCK.unlock(); } }
private static void configureLogging(File logFile, Level level) { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); OutputStreamAppender<ILoggingEvent> appender; if (logFile == null) { appender = configureConsoleLogging(loggerContext); } else { appender = configureFileLogging(logFile, loggerContext); } System.out.println("Logging: The log level is set to " + level); PatternLayoutEncoder patternLayoutEncoder = new PatternLayoutEncoder(); patternLayoutEncoder.setPattern(LogDescription.LOG_PATTERN); patternLayoutEncoder.setContext(loggerContext); patternLayoutEncoder.start(); appender.setEncoder(patternLayoutEncoder); appender.start(); ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); loggerContext.stop(); rootLogger.detachAndStopAllAppenders(); rootLogger.addAppender(appender); rootLogger.setLevel(level); SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); LevelChangePropagator levelChangePropagator = new LevelChangePropagator(); levelChangePropagator.setResetJUL(true); levelChangePropagator.setContext(loggerContext); levelChangePropagator.start(); loggerContext.addListener(levelChangePropagator); loggerContext.start(); }
@Before public void addHandler() throws Exception { mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); final String xml = Resources.toString(KafkaAppenderTest.class.getResource("/logback-kafka.xml"), Charsets.UTF_8) .replaceAll("\\$KAFKA\\$", kafka.getBroker().getKafkaBrokerConnect()); final OnConsoleStatusListener listener = new OnConsoleStatusListener(); listener.start(); context.getStatusManager().add(listener); final JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(context); configurator.doConfigure(new ByteArrayInputStream(xml.getBytes(Charsets.UTF_8))); context.start(); }
private static void configureLogging(File logFile, Level level) { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); OutputStreamAppender<ILoggingEvent> appender; if (logFile == null) { appender = configureConsoleLogging(loggerContext); } else { appender = configureFileLogging(logFile, loggerContext); } System.out.println("Logging: The log level is set to " + level); PatternLayoutEncoder patternLayoutEncoder = new PatternLayoutEncoder(); patternLayoutEncoder.setPattern(LogDescription.LOG_PATTERN); patternLayoutEncoder.setContext(loggerContext); patternLayoutEncoder.start(); appender.setEncoder(patternLayoutEncoder); appender.start(); ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); loggerContext.stop(); rootLogger.detachAndStopAllAppenders(); rootLogger.addAppender(appender); rootLogger.setLevel(level); SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); LevelChangePropagator levelChangePropagator = new LevelChangePropagator(); levelChangePropagator.setResetJUL(true); levelChangePropagator.setContext(loggerContext); levelChangePropagator.start(); loggerContext.addListener(levelChangePropagator); loggerContext.start(); }
/** * Configures logback using the given resource as the Joran configuration file. * * @param configuration logback configuration file */ protected void configureLogback(Resource configuration) { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusManager statusManager = loggerContext.getStatusManager(); statusManager.add(new InfoStatus("Loading logging configuration file: " + configuration.getLocation(), this)); try { //loggerContext.stop(); loggerContext.reset(); JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(loggerContext); configurator.doConfigure(configuration.getInputStream()); loggerContext.start(); } catch (JoranException e) { statusManager.add(new ErrorStatus("Error loading logging configuration file: " + configuration.getLocation(), this, e)); } catch (ResourceException e) { statusManager.add(new ErrorStatus("Error loading logging configuration file: " + configuration.getLocation(), this, e)); } StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext); } }