类org.apache.logging.log4j.core.Appender源码实例Demo

下面列出了怎么用org.apache.logging.log4j.core.Appender的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void testListAppender() throws Exception {
    LoggerContext loggerContext = configure("target/test-classes/log4j1-list.properties");
    Logger logger = LogManager.getLogger("test");
    logger.debug("This is a test of the root logger");
    Configuration configuration = loggerContext.getConfiguration();
    Map<String, Appender> appenders = configuration.getAppenders();
    ListAppender eventAppender = null;
    ListAppender messageAppender = null;
    for (Map.Entry<String, Appender> entry : appenders.entrySet()) {
        if (entry.getKey().equals("list")) {
            messageAppender = (ListAppender) ((AppenderAdapter.Adapter) entry.getValue()).getAppender();
        } else if (entry.getKey().equals("events")) {
            eventAppender = (ListAppender) ((AppenderAdapter.Adapter) entry.getValue()).getAppender();
        }
    }
    assertNotNull("No Event Appender", eventAppender);
    assertNotNull("No Message Appender", messageAppender);
    List<LoggingEvent> events = eventAppender.getEvents();
    assertTrue("No events", events != null && events.size() > 0);
    List<String> messages = messageAppender.getMessages();
    assertTrue("No messages", messages != null && messages.size() > 0);
}
 
private void testDailyRollingFileAppender(final String configResource, final String name, final String filePattern) throws URISyntaxException {
	final Configuration configuration = getConfiguration(configResource);
	final Appender appender = configuration.getAppender(name);
	assertNotNull(appender);
	assertEquals(name, appender.getName());
	assertTrue(appender.getClass().getName(), appender instanceof RollingFileAppender);
	final RollingFileAppender rfa = (RollingFileAppender) appender;
	assertEquals("target/hadoop.log", rfa.getFileName());
	assertEquals(filePattern, rfa.getFilePattern());
	final TriggeringPolicy triggeringPolicy = rfa.getTriggeringPolicy();
	assertNotNull(triggeringPolicy);
	assertTrue(triggeringPolicy.getClass().getName(), triggeringPolicy instanceof CompositeTriggeringPolicy);
	final CompositeTriggeringPolicy ctp = (CompositeTriggeringPolicy) triggeringPolicy;
	final TriggeringPolicy[] triggeringPolicies = ctp.getTriggeringPolicies();
	assertEquals(1, triggeringPolicies.length);
	final TriggeringPolicy tp = triggeringPolicies[0];
	assertTrue(tp.getClass().getName(), tp instanceof TimeBasedTriggeringPolicy);
	final TimeBasedTriggeringPolicy tbtp = (TimeBasedTriggeringPolicy) tp;
	assertEquals(1, tbtp.getInterval());
	final RolloverStrategy rolloverStrategy = rfa.getManager().getRolloverStrategy();
	assertTrue(rolloverStrategy.getClass().getName(), rolloverStrategy instanceof DefaultRolloverStrategy);
	final DefaultRolloverStrategy drs = (DefaultRolloverStrategy) rolloverStrategy;
	assertEquals(Integer.MAX_VALUE, drs.getMaxIndex());
	configuration.start();
	configuration.stop();
}
 
源代码3 项目: logging-log4j2   文件: TestConfigurator.java
@Test
public void testFromClassPathProperty() throws Exception {
    System.setProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY, "classpath:log4j2-config.xml");
    ctx = Configurator.initialize("Test1", null);
    LogManager.getLogger("org.apache.test.TestConfigurator");
    Configuration config = ctx.getConfiguration();
    assertNotNull("No configuration", config);
    assertEquals("Incorrect Configuration.", CONFIG_NAME, config.getName());
    final Map<String, Appender> map = config.getAppenders();
    assertNotNull("Appenders map should not be null.", map);
    assertThat(map, hasSize(greaterThan(0)));
    assertThat("Wrong configuration", map, hasKey("List"));
    Configurator.shutdown(ctx);
    config = ctx.getConfiguration();
    assertEquals("Unexpected Configuration.", NullConfiguration.NULL_NAME, config.getName());
}
 
源代码4 项目: picocli   文件: LoggingMixin.java
/**
 * Configures the Log4j2 console appender(s), using the specified verbosity:
 * <ul>
 *   <li>{@code -vvv} : enable TRACE level</li>
 *   <li>{@code -vv} : enable DEBUG level</li>
 *   <li>{@code -v} : enable INFO level</li>
 *   <li>(not specified) : enable WARN level</li>
 * </ul>
 */
public void configureLoggers() {
    Level level = getTopLevelCommandLoggingMixin(mixee).calcLogLevel();

    LoggerContext loggerContext = LoggerContext.getContext(false);
    LoggerConfig rootConfig = loggerContext.getConfiguration().getRootLogger();
    for (Appender appender : rootConfig.getAppenders().values()) {
        if (appender instanceof ConsoleAppender) {
            rootConfig.removeAppender(appender.getName());
            rootConfig.addAppender(appender, level, null);
        }
    }
    if (rootConfig.getLevel().isMoreSpecificThan(level)) {
        rootConfig.setLevel(level);
    }
    loggerContext.updateLoggers(); // apply the changes
}
 
源代码5 项目: ArchUnit   文件: LogTestRule.java
public void watch(Class<?> loggerClass, Level level) {
    this.loggerClass = loggerClass;
    Appender appender = new AbstractAppender(APPENDER_NAME, null, PatternLayout.createDefaultLayout()) {
        @Override
        public void append(LogEvent event) {
            logEvents.add(new RecordedLogEvent(event));
        }
    };
    appender.start();
    final LoggerContext ctx = getLoggerContext();
    LoggerConfig loggerConfig = ctx.getConfiguration().getLoggerConfig(loggerClass.getName());
    oldLevel = loggerConfig.getLevel();
    loggerConfig.setLevel(level);
    loggerConfig.addAppender(appender, level, null);
    ctx.updateLoggers();
}
 
源代码6 项目: logging-log4j2   文件: XmlConfigurationTest.java
@Test
public void testListAppender() throws Exception {
    LoggerContext loggerContext = configure("target/test-classes/log4j1-list.xml");
    Logger logger = LogManager.getLogger("test");
    logger.debug("This is a test of the root logger");
    Configuration configuration = loggerContext.getConfiguration();
    Map<String, Appender> appenders = configuration.getAppenders();
    ListAppender eventAppender = null;
    ListAppender messageAppender = null;
    for (Map.Entry<String, Appender> entry : appenders.entrySet()) {
        if (entry.getKey().equals("list")) {
            messageAppender = (ListAppender) ((AppenderAdapter.Adapter) entry.getValue()).getAppender();
        } else if (entry.getKey().equals("events")) {
            eventAppender = (ListAppender) ((AppenderAdapter.Adapter) entry.getValue()).getAppender();
        }
    }
    assertNotNull("No Event Appender", eventAppender);
    assertNotNull("No Message Appender", messageAppender);
    List<LoggingEvent> events = eventAppender.getEvents();
    assertTrue("No events", events != null && events.size() > 0);
    List<String> messages = messageAppender.getMessages();
    assertTrue("No messages", messages != null && messages.size() > 0);
}
 
@Test
public void deliverItemSourceDelegates() {

    // given
    Appender appender = mock(Appender.class);
    when(appender.isStarted()).thenReturn(true);
    Configuration configuration = mock(Configuration.class);
    String testAppenderRef = "testAppenderRef";
    when(configuration.getAppender(testAppenderRef)).thenReturn(appender);

    FailoverPolicy<String> failoverPolicy = spy(createTestFailoverPolicy(testAppenderRef, configuration));

    String failedMessage = UUID.randomUUID().toString();
    ItemSource<String> itemSource = new StringItemSource(failedMessage);

    // when
    failoverPolicy.deliver(itemSource);

    // then
    verify(failoverPolicy).deliver(eq(failedMessage));
}
 
源代码8 项目: logging-log4j2   文件: KafkaAppenderTest.java
@Test
public void testAppendWithKeyLookup() throws Exception {
    final Appender appender = ctx.getRequiredAppender("KafkaAppenderWithKeyLookup");
    final LogEvent logEvent = createLogEvent();
    Date date = new Date();
    SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
    appender.append(logEvent);
    final List<ProducerRecord<byte[], byte[]>> history = kafka.history();
    assertEquals(1, history.size());
    final ProducerRecord<byte[], byte[]> item = history.get(0);
    assertNotNull(item);
    assertEquals(TOPIC_NAME, item.topic());
    byte[] keyValue = format.format(date).getBytes(StandardCharsets.UTF_8);
    assertEquals(Long.valueOf(logEvent.getTimeMillis()), item.timestamp());
    assertArrayEquals(item.key(), keyValue);
    assertEquals(LOG_MESSAGE, new String(item.value(), StandardCharsets.UTF_8));
}
 
源代码9 项目: lucene-solr   文件: StartupLoggingUtils.java
/**
 * Disables all log4j2 ConsoleAppender's by modifying log4j configuration dynamically.
 * Must only be used during early startup
 * @return true if ok or else false if something happened, e.g. log4j2 classes were not in classpath
 */
@SuppressForbidden(reason = "Legitimate log4j2 access")
public static boolean muteConsole() {
  try {
    if (!isLog4jActive()) {
      logNotSupported("Could not mute logging to console.");
      return false;
    }
    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    Configuration config = ctx.getConfiguration();
    LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
    Map<String, Appender> appenders = loggerConfig.getAppenders();
    appenders.forEach((name, appender) -> {
      if (appender instanceof ConsoleAppender) {
        loggerConfig.removeAppender(name);
        ctx.updateLoggers();
      }
    });
    return true;
  } catch (Exception e) {
    logNotSupported("Could not mute logging to console.");
    return false;
  }
}
 
源代码10 项目: logging-log4j2   文件: HttpAppenderTest.java
@Test
public void testAppend() throws Exception {
    wireMockRule.stubFor(post(urlEqualTo("/test/log4j/"))
        .willReturn(SUCCESS_RESPONSE));

    final Appender appender = HttpAppender.newBuilder()
        .setName("Http")
        .setLayout(JsonLayout.createDefaultLayout())
        .setConfiguration(ctx.getConfiguration())
        .setUrl(new URL("http://localhost:" + wireMockRule.port() + "/test/log4j/"))
        .build();
    appender.append(createLogEvent());

    wireMockRule.verify(postRequestedFor(urlEqualTo("/test/log4j/"))
        .withHeader("Host", containing("localhost"))
        .withHeader("Content-Type", containing("application/json"))
        .withRequestBody(containing("\"message\" : \"" + LOG_MESSAGE + "\"")));
}
 
源代码11 项目: logging-log4j2   文件: RewriteAppenderTest.java
@Test
public void testRewrite() throws Exception {
    Logger logger = LogManager.getLogger("test");
    ThreadContext.put("key1", "This is a test");
    ThreadContext.put("hello", "world");
    logger.debug("Say hello");
    LoggerContext context = (LoggerContext) org.apache.logging.log4j.LogManager.getContext(false);
    Configuration configuration = context.getConfiguration();
    Map<String, Appender> appenders = configuration.getAppenders();
    ListAppender eventAppender = null;
    for (Map.Entry<String, Appender> entry : appenders.entrySet()) {
        if (entry.getKey().equals("events")) {
            eventAppender = (ListAppender) ((AppenderAdapter.Adapter) entry.getValue()).getAppender();
        }
    }
    assertNotNull("No Event Appender", eventAppender);
    List<LoggingEvent> events = eventAppender.getEvents();
    assertTrue("No events", events != null && events.size() > 0);
    assertNotNull("No properties in the event", events.get(0).getProperties());
    assertTrue("Key was not inserted", events.get(0).getProperties().containsKey("key2"));
    assertEquals("Key value is incorrect", "Log4j", events.get(0).getProperties().get("key2"));
}
 
源代码12 项目: pulsar   文件: PulsarAppenderTest.java
@Test
public void testAppendWithKeyLookup() {
    final Appender appender = ctx.getConfiguration().getAppender("PulsarAppenderWithKeyLookup");
    final LogEvent logEvent = createLogEvent();
    Date date = new Date();
    SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
    appender.append(logEvent);
    Message<byte[]> item;
    synchronized (history) {
        assertEquals(1, history.size());
        item = history.get(0);
    }
    assertNotNull(item);
    String keyValue = format.format(date);
    assertEquals(item.getKey(), keyValue);
    assertEquals(LOG_MESSAGE, new String(item.getData(), StandardCharsets.UTF_8));
}
 
源代码13 项目: herd   文件: Log4j2LoggingHelper.java
@Override
public StringWriter addLoggingWriterAppender(String appenderName)
{
    // Get the configuration
    final LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false);
    final Configuration configuration = loggerContext.getConfiguration();

    // Create a string writer as part of the appender so logging will be written to it.
    StringWriter stringWriter = new StringWriter();

    // Create and start the appender with the string writer.
    Appender appender = WriterAppender.createAppender(null, null, stringWriter, appenderName, false, true);
    appender.start();

    // Add the appender to the root logger.
    configuration.getRootLogger().addAppender(appender, null, null);

    // Return the string writer.
    return stringWriter;
}
 
源代码14 项目: homework_tester   文件: Main.java
private static Logger configureLog4j() {
    LoggerContext context = (LoggerContext) LogManager.getContext();
    Configuration config = context.getConfiguration();

    PatternLayout layout = PatternLayout.createLayout("%m%n", null, null, Charset.defaultCharset(), false, false, null, null);
    Appender appender = ConsoleAppender.createAppender(layout, null, null, "CONSOLE_APPENDER", null, null);
    appender.start();
    AppenderRef ref = AppenderRef.createAppenderRef("CONSOLE_APPENDER", null, null);
    AppenderRef[] refs = new AppenderRef[]{ref};
    LoggerConfig loggerConfig = LoggerConfig.createLogger("false", Level.INFO, "CONSOLE_LOGGER", "com", refs, null, null, null);
    loggerConfig.addAppender(appender, null, null);

    config.addAppender(appender);
    config.addLogger("Main.class", loggerConfig);
    context.updateLoggers(config);
    return LogManager.getContext().getLogger("Main.class");
}
 
源代码15 项目: logging-log4j2   文件: AbstractConfiguration.java
/**
 * Associates an Appender with a LoggerConfig. This method is synchronized in case a Logger with the same name is
 * being updated at the same time.
 *
 * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
 *
 * @param logger The Logger the Appender will be associated with.
 * @param appender The Appender.
 */
@Override
public synchronized void addLoggerAppender(final org.apache.logging.log4j.core.Logger logger,
        final Appender appender) {
    if (appender == null || logger == null) {
        return;
    }
    final String loggerName = logger.getName();
    appenders.putIfAbsent(appender.getName(), appender);
    final LoggerConfig lc = getLoggerConfig(loggerName);
    if (lc.getName().equals(loggerName)) {
        lc.addAppender(appender, null, null);
    } else {
        final LoggerConfig nlc = new LoggerConfig(loggerName, lc.getLevel(), lc.isAdditive());
        nlc.addAppender(appender, null, null);
        nlc.setParent(lc);
        loggerConfigs.putIfAbsent(loggerName, nlc);
        setParents();
        logger.getContext().updateLoggers();
    }
}
 
源代码16 项目: logging-log4j2   文件: HttpAppenderTest.java
@Test
public void testAppendHttps() throws Exception {
    wireMockRule.stubFor(post(urlEqualTo("/test/log4j/"))
        .willReturn(SUCCESS_RESPONSE));

    final Appender appender = HttpAppender.newBuilder()
        .setName("Http")
        .setLayout(JsonLayout.createDefaultLayout())
        .setConfiguration(ctx.getConfiguration())
        .setUrl(new URL("https://localhost:" + wireMockRule.httpsPort() + "/test/log4j/"))
        .setSslConfiguration(SslConfiguration.createSSLConfiguration(null,
            KeyStoreConfiguration.createKeyStoreConfiguration(TestConstants.KEYSTORE_FILE, TestConstants.KEYSTORE_PWD(), null, null, TestConstants.KEYSTORE_TYPE, null),
            TrustStoreConfiguration.createKeyStoreConfiguration(TestConstants.TRUSTSTORE_FILE, TestConstants.TRUSTSTORE_PWD(), null ,null, TestConstants.TRUSTSTORE_TYPE, null)))
        .setVerifyHostname(false)
        .build();
    appender.append(createLogEvent());

    wireMockRule.verify(postRequestedFor(urlEqualTo("/test/log4j/"))
        .withHeader("Host", containing("localhost"))
        .withHeader("Content-Type", containing("application/json"))
        .withRequestBody(containing("\"message\" : \"" + LOG_MESSAGE + "\"")));
}
 
@Test
public void testPropertiesConfiguration() {
    final Configuration config = context.getConfiguration();
    assertNotNull("No configuration created", config);
    assertEquals("Incorrect State: " + config.getState(), config.getState(), LifeCycle.State.STARTED);
    final Map<String, Appender> appenders = config.getAppenders();
    assertNotNull(appenders);
    assertTrue("Incorrect number of Appenders: " + appenders.size(), appenders.size() == 1);
    final Map<String, LoggerConfig> loggers = config.getLoggers();
    assertNotNull(loggers);
    assertTrue("Incorrect number of LoggerConfigs: " + loggers.size(), loggers.size() == 2);
    final Filter filter = config.getFilter();
    assertNotNull("No Filter", filter);
    assertTrue("Not a Threshold Filter", filter instanceof ThresholdFilter);
    final Logger logger = LogManager.getLogger(getClass());

    assertEquals("Incorrect level " + logger.getLevel(), Level.DEBUG, logger.getLevel());

    logger.debug("Welcome to Log4j!");
}
 
源代码18 项目: jetlinks-community   文件: Loggers.java
public static void addAppender(final Logger logger, final Appender appender) {
//        final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
//        final Configuration config = ctx.getConfiguration();
//        config.addAppender(appender);
//        LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName());
//        if (!logger.getName().equals(loggerConfig.getName())) {
//            loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true);
//            config.addLogger(logger.getName(), loggerConfig);
//        }
//        loggerConfig.addAppender(appender, null, null);
//        ctx.updateLoggers();
    }
 
源代码19 项目: logging-log4j2   文件: AppendersPlugin.java
/**
 * Creates a Map of the Appenders.
 * @param appenders An array of Appenders.
 * @return The Appender Map.
 */
@PluginFactory
public static ConcurrentMap<String, Appender> createAppenders(
            @PluginElement("Appenders") final Appender[] appenders) {

    final ConcurrentMap<String, Appender> map =  new ConcurrentHashMap<>(appenders.length);

    for (final Appender appender : appenders) {
        map.put(appender.getName(), appender);
    }

    return map;
}
 
源代码20 项目: jetlinks-community   文件: Loggers.java
public static Appender findAppender(final Logger logger, final Class<? extends Appender> clazz) {
//        final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
//        final Configuration config = ctx.getConfiguration();
//        final LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName());
//        for (final Map.Entry<String, Appender> entry : loggerConfig.getAppenders().entrySet()) {
//            if (entry.getValue().getClass().equals(clazz)) {
//                return entry.getValue();
//            }
//        }
        return null;
    }
 
源代码21 项目: chronus   文件: LogFactory.java
public void start(LogConfig abyLogConfig) {
    //为false时,返回多个LoggerContext对象, true:返回唯一的单例LoggerContext
    final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    final Configuration config = ctx.getConfiguration();
    org.apache.logging.log4j.core.Logger cfgLogger = (org.apache.logging.log4j.core.Logger) LogManager.getLogger(abyLogConfig.getCfgLogName());
    if (cfgLogger == null) {
        LogManager.getLogger(LogFactory.class).error("not found {} logger (please define in log4j2.xml)", abyLogConfig.getCfgLogName());
        return;
    }

    List<AppenderRef> appenderRefs = new ArrayList<>();
    Map<String, Appender> appenderMap = cfgLogger.getAppenders();
    List<Appender> appenders = new ArrayList<>();
    appenderMap.forEach((key, appenderCfg) -> {
        Appender appender;
        if (appenderCfg instanceof ConsoleAppender) {
            appender = appenderCfg;
        } else {
            appender = getAppender(abyLogConfig, config, appenderCfg);
        }

        if (appender != null) {
            AppenderRef ref = AppenderRef.createAppenderRef(appender.getName(), Level.ALL, null);
            appenderRefs.add(ref);
            appenders.add(appender);
        }
    });
    if (CollectionUtils.isEmpty(appenders)) {
        return;
    }
    AppenderRef[] refs = new AppenderRef[appenderRefs.size()];
    refs = appenderRefs.toArray(refs);
    LoggerConfig loggerConfig = LoggerConfig.createLogger(false, cfgLogger.getLevel(), abyLogConfig.getName(),
            "true", refs, null, config, null);
    appenders.stream().forEach(e ->
            loggerConfig.addAppender(e, Level.ALL, null)
    );
    config.addLogger(abyLogConfig.getName(), loggerConfig);
    ctx.updateLoggers(config);
}
 
源代码22 项目: chronus   文件: LogFactory.java
private Appender getAppender(LogConfig abyLogConfig, Configuration config, Appender appenderCfg) {
    Appender appender = null;
    if (appenderCfg instanceof RollingFileAppender) {
        RollingFileAppender rollingFileAppender = (RollingFileAppender) appenderCfg;
        appender = RollingFileAppender.newBuilder()
                .setConfiguration(config)
                .withName(appenderCfg.getName().replace(abyLogConfig.getAppenderNameKey(), abyLogConfig.getName()))
                .withFileName(rollingFileAppender.getFileName().replaceAll(abyLogConfig.getFileNameKey(), abyLogConfig.getFileName()))
                .withFilePattern(rollingFileAppender.getFilePattern().replaceAll(abyLogConfig.getFileNameKey(), abyLogConfig.getFileName()))
                .withLayout(rollingFileAppender.getLayout())
                .withFilter(rollingFileAppender.getFilter())
                .withPolicy(rollingFileAppender.getTriggeringPolicy())
                .withStrategy(rollingFileAppender.getManager().getRolloverStrategy())
                .build();
    } else if (appenderCfg instanceof FileAppender) {
        FileAppender fileAppender = (FileAppender) appenderCfg;
        appender = FileAppender.newBuilder()
                .setConfiguration(config)
                .withName(appenderCfg.getName().replace(abyLogConfig.getAppenderNameKey(), abyLogConfig.getName()))
                .withFileName(fileAppender.getFileName().replaceAll(abyLogConfig.getFileNameKey(), abyLogConfig.getFileName()))
                .withLayout(fileAppender.getLayout())
                .withFilter(fileAppender.getFilter())
                .build();
    } else {
        LogManager.getLogger(LogFactory.class).warn("unsupported appender type ,appender type not in(RollingFileAppender,ConsoleAppender,FileAppender)", appenderCfg.getClass());
    }
    if (appender != null) {
        if (!appender.isStarted()) {
            appender.start();
        }
        config.addAppender(appender);
    }
    return appender;
}
 
源代码23 项目: summerframework   文件: Log4j2Configuration.java
@SuppressWarnings("deprecation")
@Override
public void init() {
    try {
        LoggerContext loggerContext = (LoggerContext)LogManager.getContext(false);
        if (loggerContext == null)
            return;
        org.apache.logging.log4j.core.Logger logger =
            loggerContext.getLogger("org.apache.kafka.clients.producer.ProducerConfig");
        if (logger != null) {
            logger.setLevel(org.apache.logging.log4j.Level.ERROR);
        }
        createBizLogger();
        Configuration configuration = loggerContext.getConfiguration();
        configuration.getPluginPackages().add("org.apache.skywalking.apm.toolkit.log.log4j.v2.x");
        Map<String, Appender> appenders = configuration.getAppenders();
        for (Appender appender : appenders.values()) {
            Layout<? extends Serializable> layout = appender.getLayout();
            if (layout instanceof PatternLayout) {
                PatternLayout patternLayOut = (PatternLayout)layout;
                Serializer serializer = PatternLayout.createSerializer(configuration, null, getLog4jPattern(),
                    getLog4jPattern(), null, true, true);
                Field field = patternLayOut.getClass().getDeclaredField("eventSerializer");
                Field modifiersField = Field.class.getDeclaredField("modifiers");
                modifiersField.setAccessible(true);
                modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
                if (!field.isAccessible()) {
                    field.setAccessible(true);
                }
                field.set(patternLayOut, serializer);
            }
        }
        loggerContext.updateLoggers();
    } catch (Throwable e) {
        logger.warn(e.getMessage());
    }
}
 
源代码24 项目: logging-log4j2   文件: TestConfigurator.java
@Test
public void testInitialize_Name_LocationName() throws Exception {
    ctx = Configurator.initialize("Test1", "log4j2-config.xml");
    LogManager.getLogger("org.apache.test.TestConfigurator");
    Configuration config = ctx.getConfiguration();
    assertNotNull("No configuration", config);
    assertEquals("Incorrect Configuration.", CONFIG_NAME, config.getName());
    final Map<String, Appender> map = config.getAppenders();
    assertNotNull("Appenders map should not be null.", map);
    assertThat(map, hasSize(greaterThan(0)));
    assertThat("Wrong configuration", map, hasKey("List"));
    Configurator.shutdown(ctx);
    config = ctx.getConfiguration();
    assertEquals("Unexpected Configuration.", NullConfiguration.NULL_NAME, config.getName());
}
 
源代码25 项目: feign-reactive   文件: LoggerTest.java
@Before
public void before() {
  appender = Mockito.mock(Appender.class);
  when(appender.getName()).thenReturn("TestAppender");
  when(appender.isStarted()).thenReturn(true);
  getLoggerConfig().addAppender(appender, Level.ALL, null);
}
 
@Test
void testLogFileJson(@TempDir Path tempDir) {
    String logFile = tempDir.resolve("agent.json").toString();
    Configuration configuration = getLogConfig(Map.of("log_file", logFile, "log_format_file", "json"));

    assertThat(configuration.getAppenders().values()).hasSize(1);
    Appender appender = configuration.getAppenders().values().iterator().next();

    assertThat(appender).isInstanceOf(RollingFileAppender.class);
    assertThat(((RollingFileAppender) appender).getFileName()).isEqualTo(logFile);
    assertThat(appender.getLayout()).isInstanceOf(EcsLayout.class);
}
 
源代码27 项目: crate   文件: Loggers.java
public static Appender findAppender(final Logger logger, final Class<? extends Appender> clazz) {
    final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    final Configuration config = ctx.getConfiguration();
    final LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName());
    for (final Map.Entry<String, Appender> entry : loggerConfig.getAppenders().entrySet()) {
        if (entry.getValue().getClass().equals(clazz)) {
            return entry.getValue();
        }
    }
    return null;
}
 
源代码28 项目: logging-log4j2   文件: KafkaAppenderTest.java
@Test
public void testAppenderNoEventTimestamp() throws Exception {
    final Appender appender = ctx.getRequiredAppender("KafkaAppenderNoEventTimestamp");
    final LogEvent logEvent = createLogEvent();
    appender.append(logEvent);
    final List<ProducerRecord<byte[], byte[]>> history = kafka.history();
    assertEquals(1, history.size());
    final ProducerRecord<byte[], byte[]> item = history.get(0);
    assertNotNull(item);
    assertEquals(TOPIC_NAME, item.topic());
    byte[] keyValue = "key".getBytes(StandardCharsets.UTF_8);
    assertArrayEquals(item.key(), keyValue);
    assertNotEquals(Long.valueOf(logEvent.getTimeMillis()), item.timestamp());
    assertEquals(LOG_MESSAGE, new String(item.value(), StandardCharsets.UTF_8));
}
 
@Test
void testSoutJson() {
    Configuration configuration = getLogConfig(Map.of("ship_agent_logs", "false", "log_format_sout", "JSON"));

    assertThat(configuration.getAppenders().values()).hasSize(1);
    Appender appender = configuration.getAppenders().values().iterator().next();

    assertThat(appender).isInstanceOf(ConsoleAppender.class);
    assertThat(appender.getLayout()).isInstanceOf(EcsLayout.class);
}
 
源代码30 项目: logging-log4j2   文件: TestConfigurator.java
@Test
public void testReconfiguration() throws Exception {
    final File file = new File("target/test-classes/log4j2-config.xml");
    assertTrue("setLastModified should have succeeded.", file.setLastModified(System.currentTimeMillis() - 120000));
    ctx = Configurator.initialize("Test1", "target/test-classes/log4j2-config.xml");
    final Logger logger = LogManager.getLogger("org.apache.test.TestConfigurator");
    Configuration config = ctx.getConfiguration();
    assertNotNull("No configuration", config);
    assertEquals("Incorrect Configuration.", CONFIG_NAME, config.getName());
    final Map<String, Appender> map = config.getAppenders();
    assertNotNull("Appenders map should not be null.", map);
    assertThat(map, hasSize(greaterThan(0)));
    assertThat("Wrong configuration", map, hasKey("List"));

    // Sleep and check
    Thread.sleep(50);
    if (!file.setLastModified(System.currentTimeMillis())) {
        Thread.sleep(500);
    }
    assertTrue("setLastModified should have succeeded.", file.setLastModified(System.currentTimeMillis()));
    TimeUnit.SECONDS.sleep(config.getWatchManager().getIntervalSeconds()+1);
    for (int i = 0; i < 17; ++i) {
        logger.debug("Test message " + i);
    }

    // Sleep and check
    Thread.sleep(50);
    if (is(theInstance(config)).matches(ctx.getConfiguration())) {
        Thread.sleep(500);
    }
    final Configuration newConfig = ctx.getConfiguration();
    assertThat("Configuration not reset", newConfig, is(not(theInstance(config))));
    Configurator.shutdown(ctx);
    config = ctx.getConfiguration();
    assertEquals("Unexpected Configuration.", NullConfiguration.NULL_NAME, config.getName());
}
 
 类所在包
 同包方法