/** * 将此appender添加到logger中. */ public void addToLogger(String loggerName) { Logger logger = (Logger) LoggerFactory.getLogger(loggerName); logger.addAppender(this); }
/** * 将此appender添加到root logger中. */ public void addToRootLogger() { Logger logger = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); logger.addAppender(this); }
/** * 将此appender添加到logger中. */ public void addToLogger(Class<?> loggerClass) { Logger logger = (Logger) LoggerFactory.getLogger(loggerClass); logger.addAppender(this); }
/** * Creates a non additive logger dedicated to printing message as is (ie. assuming they are already formatted). * * It creates a dedicated appender to the System.out which applies no formatting the logs it receives. */ private void configureConsole(LoggerContext loggerContext) { ConsoleAppender<ILoggingEvent> consoleAppender = helper.newConsoleAppender(loggerContext, CONSOLE_PLAIN_APPENDER, "%msg%n"); Logger consoleLogger = loggerContext.getLogger(CONSOLE_LOGGER); consoleLogger.setAdditive(false); consoleLogger.addAppender(consoleAppender); }
private void configureRootWithLogbackWritingToFile(LoggerContext ctx) { Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME); String appLogPattern = helper.buildLogPattern(APP_ROOT_LOGGER_CONFIG); FileAppender<ILoggingEvent> fileAppender = helper.newFileAppender(ctx, appSettings.getProps(), APP_ROOT_LOGGER_CONFIG, appLogPattern); rootLogger.addAppender(fileAppender); rootLogger.addAppender(createAppConsoleAppender(ctx, appLogPattern)); }
private void tryConfigCLogging() throws Exception { String appId = Foundation.app().getAppId(); if (Strings.isNullOrEmpty(appId)) { logger.warn("App id is null or empty!"); return; } LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); Class clazz = Class.forName(cLoggingAppenderClass); Appender cLoggingAppender = (Appender) clazz.newInstance(); ReflectionUtils.findMethod(clazz, "setAppId", String.class).invoke(cLoggingAppender, appId); ReflectionUtils.findMethod(clazz, "setServerIp", String.class) .invoke(cLoggingAppender, cloggingUrl()); ReflectionUtils.findMethod(clazz, "setServerPort", int.class) .invoke(cLoggingAppender, Integer.parseInt(cloggingPort())); cLoggingAppender.setName("CentralLogging"); cLoggingAppender.setContext(loggerContext); cLoggingAppender.start(); ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("root"); logger.addAppender(cLoggingAppender); }
private LogFixture(Logger logger, Level level) { this.logger = logger; this.appender = new ListAppender(LogHelper.encoder("%level %msg%n")); this.appender.start(); logger.addAppender(appender); logger.setLevel(level); }
private Appender<ILoggingEvent> mockAppenderFor(String name) { Appender<ILoggingEvent> appender = mock(Appender.class); Logger logger = (Logger) LoggerFactory.getLogger(name); logger.setLevel(Level.DEBUG); logger.addAppender(appender); return appender; }
/** * Make the logback configuration for a sub process to correctly push all its logs to be read by a stream gobbler * on the sub process's System.out. * * @see #buildLogPattern(RootLoggerConfig) */ public void configureForSubprocessGobbler(Props props, String logPattern) { if (isAllLogsToConsoleEnabled(props)) { LoggerContext ctx = getRootContext(); ctx.getLogger(ROOT_LOGGER_NAME).addAppender(newConsoleAppender(ctx, "root_console", logPattern)); } }
private void configureInstrumentation(Logger root, MetricRegistry metricRegistry) { final InstrumentedAppender appender = new InstrumentedAppender(metricRegistry); appender.setContext(loggerContext); appender.start(); root.addAppender(appender); }
@Override public void activateAppender(String productName, String file, String encoding) { ch.qos.logback.core.Appender appender = getLogbackDailyRollingFileAppender(productName, file, encoding); logger.detachAndStopAllAppenders(); logger.addAppender(appender); setProductName(productName); }
@Override public void activateAppenderWithTimeAndSizeRolling(String productName, String file, String encoding, String size) { ch.qos.logback.core.Appender appender = getLogbackDailyAndSizeRollingFileAppender(productName, file, encoding, size); logger.detachAndStopAllAppenders(); logger.addAppender(appender); setProductName(productName); }
@Override public void activateAppenderWithTimeAndSizeRolling(String productName, String file, String encoding, String size, String datePattern) { ch.qos.logback.core.Appender appender = getLogbackDailyAndSizeRollingFileAppender(productName, file, encoding, size, datePattern, -1); logger.detachAndStopAllAppenders(); logger.addAppender(appender); setProductName(productName); }
@Override public void activateAppenderWithSizeRolling(String productName, String file, String encoding, String size, int maxBackupIndex) { ch.qos.logback.core.Appender appender = getSizeRollingAppender(productName, file, encoding, size, maxBackupIndex); logger.detachAndStopAllAppenders(); logger.addAppender(appender); setProductName(productName); }
@Override public void activateAppenderWithTimeAndSizeRolling(String productName, String file, String encoding, String size, String datePattern, int maxBackupIndex) { ch.qos.logback.core.Appender appender = getLogbackDailyAndSizeRollingFileAppender(productName, file, encoding, size, datePattern, maxBackupIndex); logger.detachAndStopAllAppenders(); logger.addAppender(appender); setProductName(productName); }
private static void setCustomRootAppender(LoggingConfiguration conf) { Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); String level = StringUtils.defaultIfBlank(conf.getSubstitutionVariables().get(LoggingConfiguration.PROPERTY_ROOT_LOGGER_LEVEL), LoggingConfiguration.LEVEL_ROOT_DEFAULT); if (logger.getAppender(CUSTOM_APPENDER_NAME) == null) { logger.detachAndStopAllAppenders(); logger.addAppender(createAppender(conf.getLogOutput())); } logger.setLevel(Level.toLevel(level)); }
public static void register() { Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); LoggerContext loggerContext = rootLogger.getLoggerContext(); PatternLayout layout = new PatternLayout(); layout.setContext(loggerContext); layout.setPattern("%-5level: %msg%n"); layout.start(); INSTANCE.setContext(loggerContext); INSTANCE.setLayout(layout); INSTANCE.start(); rootLogger.addAppender(INSTANCE); }
private void redirectLogsTo(OutputStream os, Class<?> clazz) { Logger logger = (Logger) LoggerFactory.getLogger(clazz); Appender<ILoggingEvent> appender = mock(Appender.class); when(appender.isStarted()).thenReturn(true); doAnswer(writeTo(os)).when(appender).doAppend(any(ILoggingEvent.class)); logger.addAppender(appender); }
public static <T> ListAppender attachMemoryAppenderToLoggerOf(Class<T> loggerClass) { ListAppender listAppender = new ListAppender(); new LogbackHelper().getRootContext().getLogger(loggerClass) .addAppender(listAppender); listAppender.start(); return listAppender; }
public void configure(LoggerContext lc) { addInfo("Setting up default configuration."); ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<ILoggingEvent>(); ca.setContext(lc); ca.setName("console"); LayoutWrappingEncoder<ILoggingEvent> encoder = new LayoutWrappingEncoder<ILoggingEvent>(); encoder.setContext(lc); // same as // PatternLayout layout = new PatternLayout(); // layout.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); TTLLLayout layout = new TTLLLayout(); layout.setContext(lc); layout.start(); encoder.setLayout(layout); ca.setEncoder(encoder); ca.start(); Logger rootLogger = lc.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(ca); } }