Search in sources :

Example 71 with LogEvent

use of org.apache.logging.log4j.core.LogEvent in project logging-log4j2 by apache.

the class VariablesNotEmptyReplacementConverterTest method testReplacement.

private void testReplacement(final String tag, final String expectedValue) {
    final LogEvent event = //
    Log4jLogEvent.newBuilder().setLoggerName(//
    VariablesNotEmptyReplacementConverterTest.class.getName()).setLevel(//
    Level.DEBUG).setMessage(//
    new SimpleMessage("This is a test")).build();
    final StringBuilder sb = new StringBuilder();
    final LoggerContext ctx = LoggerContext.getContext();
    final String[] options = new String[] { "[" + tag + "]" };
    final VariablesNotEmptyReplacementConverter converter = VariablesNotEmptyReplacementConverter.newInstance(ctx.getConfiguration(), options);
    converter.format(event, sb);
    assertEquals(expectedValue, sb.toString());
}
Also used : Log4jLogEvent(org.apache.logging.log4j.core.impl.Log4jLogEvent) LogEvent(org.apache.logging.log4j.core.LogEvent) SimpleMessage(org.apache.logging.log4j.message.SimpleMessage) LoggerContext(org.apache.logging.log4j.core.LoggerContext)

Example 72 with LogEvent

use of org.apache.logging.log4j.core.LogEvent in project logging-log4j2 by apache.

the class JmsAppenderIT method testLogMapMessageToQueue.

@Test
public void testLogMapMessageToQueue() throws Exception {
    setUp(MessageLayout.createLayout());
    final int messageCount = 100;
    final MessageConsumer messageConsumer = jmsManager.createMessageConsumer();
    final JmsQueueConsumer consumer = new JmsQueueConsumer(messageCount, javax.jms.MapMessage.class);
    messageConsumer.setMessageListener(consumer);
    final String messageText = "Hello, World!";
    final String loggerName = this.getClass().getName();
    for (int i = 0; i < messageCount; i++) {
        Map<String, String> map = new HashMap<>();
        map.put("messageText", messageText);
        map.put("threadName", Thread.currentThread().getName());
        final LogEvent event = //
        Log4jLogEvent.newBuilder().setLoggerName(loggerName).setLoggerFqcn(loggerName).setLevel(//
        Level.INFO).setMessage(//
        new MapMessage(map)).setTimeMillis(System.currentTimeMillis()).build();
        appender.append(event);
    }
    consumer.awaitAndAssertAllMessagesConsumed();
}
Also used : MessageConsumer(javax.jms.MessageConsumer) HashMap(java.util.HashMap) LogEvent(org.apache.logging.log4j.core.LogEvent) Log4jLogEvent(org.apache.logging.log4j.core.impl.Log4jLogEvent) MapMessage(org.apache.logging.log4j.message.MapMessage) Test(org.junit.Test)

Example 73 with LogEvent

use of org.apache.logging.log4j.core.LogEvent in project logging-log4j2 by apache.

the class JmsAppenderIT method testLogObjectMessageToQueue.

@Test
public void testLogObjectMessageToQueue() throws Exception {
    setUp(SerializedLayout.createLayout());
    final int messageCount = 100;
    final MessageConsumer messageConsumer = jmsManager.createMessageConsumer();
    final JmsQueueConsumer consumer = new JmsQueueConsumer(messageCount, ObjectMessage.class);
    messageConsumer.setMessageListener(consumer);
    final String messageText = "Hello, World!";
    final String loggerName = this.getClass().getName();
    for (int i = 0; i < messageCount; i++) {
        final LogEvent event = //
        Log4jLogEvent.newBuilder().setLoggerName(loggerName).setLoggerFqcn(loggerName).setLevel(//
        Level.INFO).setMessage(new SimpleMessage(messageText)).setThreadName(//
        Thread.currentThread().getName()).setTimeMillis(System.currentTimeMillis()).build();
        appender.append(event);
    }
    consumer.awaitAndAssertAllMessagesConsumed();
}
Also used : MessageConsumer(javax.jms.MessageConsumer) LogEvent(org.apache.logging.log4j.core.LogEvent) Log4jLogEvent(org.apache.logging.log4j.core.impl.Log4jLogEvent) SimpleMessage(org.apache.logging.log4j.message.SimpleMessage) Test(org.junit.Test)

Example 74 with LogEvent

use of org.apache.logging.log4j.core.LogEvent in project logging-log4j2 by apache.

the class ConsoleAppenderTest method testConsoleStreamManagerDoesNotClose.

private void testConsoleStreamManagerDoesNotClose(final PrintStream ps, final Target targetName, final SystemSetter systemSetter) {
    try {
        systemSetter.systemSet(psMock);
        final Layout<String> layout = PatternLayout.newBuilder().withAlwaysWriteExceptions(true).build();
        final ConsoleAppender app = ConsoleAppender.newBuilder().withLayout(layout).setTarget(targetName).withName("Console").withIgnoreExceptions(false).build();
        app.start();
        assertTrue("Appender did not start", app.isStarted());
        final LogEvent event = //
        Log4jLogEvent.newBuilder().setLoggerName(//
        "TestLogger").setLoggerFqcn(//
        ConsoleAppenderTest.class.getName()).setLevel(//
        Level.INFO).setMessage(//
        new SimpleMessage("Test")).build();
        app.append(event);
        app.stop();
        assertFalse("Appender did not stop", app.isStarted());
    } finally {
        systemSetter.systemSet(ps);
    }
    then(psMock).should(atLeastOnce()).write(any(byte[].class), anyInt(), anyInt());
    then(psMock).should(atLeastOnce()).flush();
}
Also used : LogEvent(org.apache.logging.log4j.core.LogEvent) Log4jLogEvent(org.apache.logging.log4j.core.impl.Log4jLogEvent) SimpleMessage(org.apache.logging.log4j.message.SimpleMessage)

Example 75 with LogEvent

use of org.apache.logging.log4j.core.LogEvent in project logging-log4j2 by apache.

the class FileAppenderTest method writer.

private static void writer(final boolean locking, final int logEventCount, final String name, final boolean createOnDemand, final boolean concurrent) throws Exception {
    final Layout<String> layout = createPatternLayout();
    // @formatter:off
    final FileAppender appender = FileAppender.newBuilder().withFileName(FILE_NAME).withName("test").withImmediateFlush(false).withIgnoreExceptions(false).withLocking(locking).withBufferedIo(false).withLayout(layout).withCreateOnDemand(createOnDemand).build();
    // @formatter:on
    Assert.assertEquals(createOnDemand, appender.getManager().isCreateOnDemand());
    try {
        appender.start();
        assertTrue("Appender did not start", appender.isStarted());
        final boolean exists = Files.exists(PATH);
        final String msg = String.format("concurrent = %s, createOnDemand = %s, file exists = %s", concurrent, createOnDemand, exists);
        // If concurrent the file might have been created (or not.)
        // Can't really test createOnDemand && concurrent.
        final boolean expectFileCreated = !createOnDemand;
        if (concurrent && expectFileCreated) {
            Assert.assertTrue(msg, exists);
        } else if (expectFileCreated) {
            Assert.assertNotEquals(msg, createOnDemand, exists);
        }
        for (int i = 0; i < logEventCount; ++i) {
            final LogEvent logEvent = Log4jLogEvent.newBuilder().setLoggerName("TestLogger").setLoggerFqcn(FileAppenderTest.class.getName()).setLevel(Level.INFO).setMessage(new SimpleMessage("Test")).setThreadName(name).setTimeMillis(System.currentTimeMillis()).build();
            try {
                appender.append(logEvent);
                // Give up control long enough for another thread/process to occasionally do
                Thread.sleep(25);
            // something.
            } catch (final Exception ex) {
                throw ex;
            }
        }
    } finally {
        appender.stop();
    }
    assertFalse("Appender did not stop", appender.isStarted());
}
Also used : LogEvent(org.apache.logging.log4j.core.LogEvent) Log4jLogEvent(org.apache.logging.log4j.core.impl.Log4jLogEvent) SimpleMessage(org.apache.logging.log4j.message.SimpleMessage)

Aggregations

LogEvent (org.apache.logging.log4j.core.LogEvent)189 Test (org.junit.Test)150 Log4jLogEvent (org.apache.logging.log4j.core.impl.Log4jLogEvent)127 SimpleMessage (org.apache.logging.log4j.message.SimpleMessage)94 Message (org.apache.logging.log4j.message.Message)33 Marker (org.apache.logging.log4j.Marker)16 StructuredDataMessage (org.apache.logging.log4j.message.StructuredDataMessage)11 HashMap (java.util.HashMap)9 LoggerContext (org.apache.logging.log4j.core.LoggerContext)8 ClockFactoryTest (org.apache.logging.log4j.core.util.ClockFactoryTest)8 File (java.io.File)7 IOException (java.io.IOException)7 Level (org.apache.logging.log4j.Level)7 Appender (org.apache.logging.log4j.core.Appender)6 MapMessage (org.apache.logging.log4j.message.MapMessage)6 ContextStack (org.apache.logging.log4j.ThreadContext.ContextStack)5 ObjectMessage (org.apache.logging.log4j.message.ObjectMessage)5 ReusableMessage (org.apache.logging.log4j.message.ReusableMessage)5 ReusableObjectMessage (org.apache.logging.log4j.message.ReusableObjectMessage)5 ListAppender (org.apache.logging.log4j.test.appender.ListAppender)5