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

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

private static String logWithSpanAndLog4jConfiguration(
    String log4jPattern, SpanContext spanContext, Function<Logger, Void> loggingFunction) {
  StringWriter output = new StringWriter();
  StringLayout layout = PatternLayout.newBuilder().withPattern(log4jPattern).build();
  Appender appender =
      WriterAppender.newBuilder()
          .setTarget(output)
          .setLayout(layout)
          .setName("TestAppender")
          .build();
  ((LoggerContext) LogManager.getContext(false)).updateLoggers();
  appender.start();
  logger.addAppender(appender);
  logger.setLevel(Level.ALL);
  try {
    logWithSpan(spanContext, loggingFunction, logger);
    return output.toString();
  } finally {
    logger.removeAppender(appender);
  }
}
 
@Test
public void addBlankSpanToLogEntryWithAllSpans() {
  String log =
      logWithSpanAndLog4jConfiguration(
          TEST_PATTERN,
          SpanContext.INVALID,
          new Function<Logger, Void>() {
            @Override
            public Void apply(Logger logger) {
              logger.fatal("message #3");
              return null;
            }
          });
  assertThat(log)
      .isEqualTo(
          "traceId=00000000000000000000000000000000 spanId=0000000000000000 sampled=false FATAL "
              + "- message #3");
}
 
@Test
public void testValidationErrorsAreLogged() {
    Kafka k = TestUtils.fromYaml("/example.yaml", Kafka.class, true);
    assertThat(k, is(notNullValue()));
    TestLogger logger = new TestLogger((Logger) LogManager.getLogger(ValidationVisitorTest.class));
    HasMetadata resource = new KafkaBuilder()
            .withNewMetadata()
                .withName("testname")
                .withNamespace("testnamespace")
            .endMetadata()
            .withApiVersion("v1alpha1")
        .build();
    ResourceVisitor.visit(k, new ValidationVisitor(resource, logger));
    logger.assertLoggedAtLeastOnce(lm -> lm.level() == Level.WARN
        && ("Kafka resource testname in namespace testnamespace: " +
            "Contains object at path spec.kafka with an unknown property: foo").equals(lm.formattedMessage()));
    logger.assertLoggedAtLeastOnce(lm -> lm.level() == Level.WARN
            && ("Kafka resource testname in namespace testnamespace: " +
            "In API version v1alpha1 the property topicOperator at path spec.topicOperator has been deprecated. " +
            "This feature should now be configured at path spec.entityOperator.topicOperator.").equals(lm.formattedMessage()));
    logger.assertNotLogged(lm -> lm.level() == Level.WARN
            && ("Kafka resource testname in namespace testnamespace: " +
            "In API version v1alpha1 the property tolerations at path spec.zookeeper.tolerations has been deprecated. " +
            "This feature should now be configured at path spec.zookeeper.template.pod.tolerations.").equals(lm.formattedMessage()));
}
 
源代码4 项目: logging-log4j2   文件: PatternParserTest.java
@Test
public void testPatternTruncateFromEnd() {
    final List<PatternFormatter> formatters = parser.parse(patternTruncateFromEnd);
    assertNotNull(formatters);
    final LogEvent event = Log4jLogEvent.newBuilder() //
            .setLoggerName("org.apache.logging.log4j.PatternParserTest") //
            .setLoggerFqcn(Logger.class.getName()) //
            .setLevel(Level.INFO) //
            .setMessage(new SimpleMessage("Hello, world")) //
            .setThreadName("Thread1") //
            .setTimeMillis(System.currentTimeMillis()) //
            .build();
    final StringBuilder buf = new StringBuilder();
    for (final PatternFormatter formatter : formatters) {
        formatter.format(event, buf);
    }
    final String str = buf.toString();
    final String expected = "INFO  org.a Hello, world" + Strings.LINE_SEPARATOR;
    assertTrue("Expected to end with: " + expected + ". Actual: " + str, str.endsWith(expected));
}
 
源代码5 项目: logging-log4j2   文件: CsvParameterLayoutTest.java
@Test
public void testLogJsonArgument() throws InterruptedException {
    final ListAppender appender = (ListAppender) init.getAppender("List");
    appender.countDownLatch = new CountDownLatch(4);
    appender.clear();
    final Logger logger = (Logger) LogManager.getRootLogger();
    final String json = "{\"id\":10,\"name\":\"Alice\"}";
    logger.error("log:{}", json);
    // wait until background thread finished processing
    final int msgCount = 1;
    if (appender.getMessages().size() < msgCount) {
        appender.countDownLatch.await(5, TimeUnit.SECONDS);
    }
    assertEquals("Background thread did not finish processing: msg count", msgCount, appender.getMessages().size());

    // don't stop appender until background thread is done
    appender.stop();
    final List<String> list = appender.getMessages();
    final String eventStr = list.get(0).toString();
    Assert.assertTrue(eventStr, eventStr.contains(json));
}
 
源代码6 项目: Bukkit-SSHD   文件: ConsoleShellFactory.java
public void start(Environment env) throws IOException {
    try {
        consoleReader = new ConsoleReader(in, new FlushyOutputStream(out), new SshTerminal());
        consoleReader.setExpandEvents(true);
        consoleReader.addCompleter(new ConsoleCommandCompleter());

        StreamHandler streamHandler = new FlushyStreamHandler(out, new ConsoleLogFormatter(), consoleReader);
        streamHandlerAppender = new StreamHandlerAppender(streamHandler);

        ((Logger) LogManager.getRootLogger()).addAppender(streamHandlerAppender);

        environment = env;
        thread = new Thread(this, "SSHD ConsoleShell " + env.getEnv().get(Environment.ENV_USER));
        thread.start();
    } catch (Exception e) {
        throw new IOException("Error starting shell", e);
    }
}
 
源代码7 项目: logging-log4j2   文件: NoMarkerFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
                     final Object p0, final Object p1, final Object p2, final Object p3,
                     final Object p4, final Object p5, final Object p6,
                     final Object p7, final Object p8, final Object p9) {
    return filter(marker);
}
 
源代码8 项目: summerframework   文件: Log4j2LevelSetter.java
@Override
public void setLoggerLevel(String name, String level) {
    Collection<Logger> notCurrentLoggerCollection =
        org.apache.logging.log4j.core.LoggerContext.getContext(false).getLoggers();
    Collection<org.apache.logging.log4j.core.Logger> currentLoggerCollection =
        org.apache.logging.log4j.core.LoggerContext.getContext().getLoggers();
    Collection<org.apache.logging.log4j.core.Logger> loggerCollection = notCurrentLoggerCollection;
    loggerCollection.addAll(currentLoggerCollection);
    for (org.apache.logging.log4j.core.Logger logger : loggerCollection) {
        if (name.equals(logger.getName())) {
            logger.setLevel(org.apache.logging.log4j.Level.toLevel(level));
        }
    }
}
 
@Before
public void setup() {
    logger = (Logger) LogManager.getRootLogger();
    appender = OutputStreamAppender.newBuilder().setName("Appender").setTarget(out).build();
    appender.start();
    logger.addAppender(appender);
    logger.setLevel(Level.INFO);
}
 
源代码10 项目: htmlunit   文件: HttpWebConnectionTest.java
/**
 * @throws Exception if an error occurs
 */
@Test
@Alerts(DEFAULT = "Host",
        IE = {})
public void hostHeaderFirst() throws Exception {
    final Logger logger = (Logger) LogManager.getLogger("org.apache.http.headers");
    final Level oldLevel = logger.getLevel();
    Configurator.setLevel(logger.getName(), Level.DEBUG);

    final StringWriter stringWriter = new StringWriter();
    final PatternLayout layout = PatternLayout.newBuilder().withPattern("%msg%n").build();

    final WriterAppender writerAppender = WriterAppender.newBuilder().setName("writeLogger").setTarget(stringWriter)
            .setLayout(layout).build();
    writerAppender.start();

    logger.addAppender(writerAppender);
    try {
        startWebServer("./");

        final WebClient webClient = getWebClient();
        webClient.getPage(URL_FIRST + "LICENSE.txt");
        final String[] messages = StringUtils.split(stringWriter.toString(), "\n");
        for (int i = 0; i < getExpectedAlerts().length; i++) {
            assertTrue(messages[i + 1].contains(getExpectedAlerts()[i]));
        }
    }
    finally {
        logger.removeAppender(writerAppender);
        Configurator.setLevel(logger.getName(), oldLevel);
    }
}
 
源代码11 项目: logging-log4j2   文件: DenyAllFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7, final Object p8) {
    return Result.DENY;
}
 
源代码12 项目: flogger   文件: Log4j2BackendFactory.java
@Override
public LoggerBackend create(String loggingClassName) {
  // Compute the logger name exactly the same way as in SimpleBackendFactory.
  // The logger name must match the name of the logging class so that we can return it from
  // Log4j2LoggerBackend#getLoggerName().
  // We cast org.apache.logging.log4j.core.Logger here so that
  // we can access the methods only avilable under org.apache.logging.log4j.core.Logger.
  // TODO(b/27920233): Strip inner/nested classes when deriving logger name.
  Logger logger = (Logger) LogManager.getLogger(loggingClassName.replace('$', '.'));
  return new Log4j2LoggerBackend(logger);
}
 
源代码13 项目: logging-log4j2   文件: PatternParserTest.java
@Test
public void testBadPattern() {
    final Calendar cal = Calendar.getInstance();
    cal.set(2001, Calendar.FEBRUARY, 3, 4, 5, 6);
    cal.set(Calendar.MILLISECOND, 789);
    final long timestamp = cal.getTimeInMillis();

    final List<PatternFormatter> formatters = parser.parse(badPattern);
    assertNotNull(formatters);
    final Throwable t = new Throwable();
    final StackTraceElement[] elements = t.getStackTrace();
    final LogEvent event = Log4jLogEvent.newBuilder() //
            .setLoggerName("a.b.c") //
            .setLoggerFqcn(Logger.class.getName()) //
            .setLevel(Level.INFO) //
            .setMessage(new SimpleMessage("Hello, world")) //
            .setThreadName("Thread1") //
            .setSource(elements[0]) //
            .setTimeMillis(timestamp) //
            .build();
    final StringBuilder buf = new StringBuilder();
    for (final PatternFormatter formatter : formatters) {
        formatter.format(event, buf);
    }
    final String str = buf.toString();

    // eats all characters until the closing '}' character
    final String expected = "[2001-02-03 04:05:06,789] - Hello, world";
    assertTrue("Expected to start with: " + expected + ". Actual: " + str, str.startsWith(expected));
}
 
源代码14 项目: logging-log4j2   文件: BurstFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7, final Object p8) {
    return filter(level);
}
 
源代码15 项目: logging-log4j2   文件: ThresholdFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7, final Object p8) {
    return filter(level);
}
 
源代码16 项目: logging-log4j2   文件: ThresholdFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7) {
    return filter(level);
}
 
源代码17 项目: logging-log4j2   文件: ThreadContextMapFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7) {
    return filter();
}
 
源代码18 项目: logging-log4j2   文件: NoMarkerFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
                     final Object p0, final Object p1, final Object p2, final Object p3,
                     final Object p4, final Object p5, final Object p6,
                     final Object p7, final Object p8) {
    return filter(marker);
}
 
源代码19 项目: DiscordSRV   文件: JdaFilter.java
@Override
public Result filter(Logger logger, Level level, Marker marker, String message, Object... parameters) {
    return check(
            logger.getName(),
            level,
            message,
            null);
}
 
源代码20 项目: wekaDeeplearning4j   文件: LogConfiguration.java
/**
 * Update the weka dl4j log level.
 */
protected void updateWekaDl4jLogLevel() {
  LoggerContext context = getLoggerContext();
  Collection<Logger> loggers = context.getLoggers();
  for (Logger logger : loggers) {
    if (logger.getName().startsWith("weka")) {
      updateLogLevel(logger.getName(), wekaDl4jLogLevel);
    }
  }
}
 
源代码21 项目: logging-log4j2   文件: LevelMatchFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7, final Object p8, final Object p9) {
    return filter(level);
}
 
源代码22 项目: logging-log4j2   文件: ThreadContextMapFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6,
        final Object p7, final Object p8, final Object p9) {
    return filter();
}
 
源代码23 项目: logging-log4j2   文件: FlumeAppenderTest.java
@Before
public void setUp() throws Exception {
    eventSource = new AvroSource();
    channel = new MemoryChannel();

    Configurables.configure(channel, new Context());

    avroLogger = (Logger) LogManager.getLogger("avrologger");
    /*
     * Clear out all other appenders associated with this logger to ensure
     * we're only hitting the Avro appender.
     */
    removeAppenders(avroLogger);
    final Context context = new Context();
    testPort = String.valueOf(AvailablePortFinder.getNextAvailable());
    context.put("port", testPort);
    context.put("bind", "0.0.0.0");
    Configurables.configure(eventSource, context);

    final List<Channel> channels = new ArrayList<>();
    channels.add(channel);

    final ChannelSelector cs = new ReplicatingChannelSelector();
    cs.setChannels(channels);

    eventSource.setChannelProcessor(new ChannelProcessor(cs));

    eventSource.start();

    Assert.assertTrue("Reached start or error", LifecycleController
            .waitForOneOf(eventSource, LifecycleState.START_OR_ERROR));
    Assert.assertEquals("Server is started", LifecycleState.START,
            eventSource.getLifecycleState());
}
 
源代码24 项目: AuthMeReloaded   文件: Log4JFilter.java
@Override
public Result filter(Logger logger, Level level, Marker marker, Object msg, Throwable t) {
    String candidate = null;
    if (msg != null) {
        candidate = msg.toString();
    }
    return validateMessage(candidate);
}
 
源代码25 项目: logging-log4j2   文件: MarkerFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6) {
    return filter(marker);
}
 
源代码26 项目: logging-log4j2   文件: StringMatchFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3,
        final Object p4, final Object p5, final Object p6) {
    return filter(logger.getMessageFactory().newMessage(msg, p0, p1, p2, p3, p4, p5, p6).getFormattedMessage());
}
 
源代码27 项目: logging-log4j2   文件: TimeFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,
        final Object p6, final Object p7, final Object p8, final Object p9) {
    return filter();
}
 
源代码28 项目: logging-log4j2   文件: DenyAllFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0) {
    return Result.DENY;
}
 
源代码29 项目: logging-log4j2   文件: TimeFilter.java
@Override
public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
        final Object p0, final Object p1, final Object p2, final Object p3) {
    return filter();
}
 
源代码30 项目: logging-log4j2   文件: NeutralFilter.java
@Override
public Result filter(Logger logger, Level level, Marker marker, String msg, Object p0, Object p1, Object p2,
        Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
    return Result.NEUTRAL;
}
 
 类所在包
 同包方法