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());
}
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();
}
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();
}
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();
}
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());
}
Aggregations