Skip to content

io microsphere logging log4j2 appender InMemoryAppender

github-actions[bot] edited this page May 30, 2026 · 5 revisions

InMemoryAppender

Type: Class | Module: microsphere-log4j2 | Package: io.microsphere.logging.log4j2.appender | Since: 1.0.0

Source: microsphere-log4j2/src/main/java/io/microsphere/logging/log4j2/appender/InMemoryAppender.java

Overview

In-Memory Appender records any LogEvent

Declaration

public class InMemoryAppender extends AbstractLifeCycle implements Appender

Author: Mercy

Version Information

  • Introduced in: 1.0.0
  • Current Project Version: 0.1.14-SNAPSHOT

Version Compatibility

This component is tested and compatible with the following Java versions:

Java Version Status
Java 8 ✅ Compatible
Java 11 ✅ Compatible
Java 17 ✅ Compatible
Java 21 ✅ Compatible
Java 25 ✅ Compatible

Examples

Method Examples

append

InMemoryAppender appender = new InMemoryAppender();
  appender.start();
  LogEvent event = Log4jLogEvent.newBuilder()
      .setLoggerName("test.logger")
      .setLevel(Level.INFO)
      .setMessage(new SimpleMessage("hello"))
      .build();
  appender.append(event);

getName

InMemoryAppender appender = new InMemoryAppender();
  String name = appender.getName(); // "InMemory"

ignoreExceptions

InMemoryAppender appender = new InMemoryAppender();
  Layout<?> layout = appender.getLayout(); // null
InMemoryAppender appender = new InMemoryAppender();
  boolean ignore = appender.ignoreExceptions(); // false

getHandler

InMemoryAppender appender = new InMemoryAppender();
  ErrorHandler handler = appender.getHandler(); // null

setHandler

InMemoryAppender appender = new InMemoryAppender();
  appender.setHandler(null); // no-op

initialize

InMemoryAppender appender = new InMemoryAppender();
  appender.initialize();

start

InMemoryAppender appender = new InMemoryAppender();
  appender.start();
  // appender is now ready to record events

stop

InMemoryAppender appender = new InMemoryAppender();
  appender.start();
  appender.append(event);
  appender.stop(); // clears buffered events

transfer

InMemoryAppender source = new InMemoryAppender();
  source.start();
  source.append(event);
  FileAppender target = ...;
  source.transfer(target);

findInMemoryAppender

InMemoryAppender appender = InMemoryAppender.findInMemoryAppender();
  if (appender != null) {
    appender.transfer(anotherAppender);
  }

Usage

Maven Dependency

Add the following dependency to your pom.xml:

<dependency>
    <groupId>io.github.microsphere-projects</groupId>
    <artifactId>microsphere-log4j2</artifactId>
    <version>${microsphere-logging.version}</version>
</dependency>

Tip: Use the BOM (microsphere-logging-dependencies) for consistent version management. See the Getting Started guide.

Import

import io.microsphere.logging.log4j2.appender.InMemoryAppender;

API Reference

Public Methods

Method Description
append The name of InMemoryAppender
getName Returns the name of this appender, which is #NAME.
ignoreExceptions Returns null because this appender does not use a Layout.
getHandler Returns null because this appender does not use an ErrorHandler.
setHandler No-op: this appender does not support setting an ErrorHandler.
initialize Initializes the appender lifecycle.
start Starts the appender lifecycle.
stop Stops the appender lifecycle and clears all recorded LogEvent instances.
transfer Transfer all log events to another Appender
findInMemoryAppender Finds and returns the InMemoryAppender registered in the current Log4j2 configuration,

Method Details

append

public void append(LogEvent event)

The name of InMemoryAppender / public static final String NAME = "InMemory";

private final ConcurrentSkipListSet logEvents = new ConcurrentSkipListSet<>(INSTANCE);

/** Appends the given LogEvent to the in-memory collection.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  appender.start();
  LogEvent event = Log4jLogEvent.newBuilder()
      .setLoggerName("test.logger")
      .setLevel(Level.INFO)
      .setMessage(new SimpleMessage("hello"))
      .build();
  appender.append(event);
`

getName

public String getName()

Returns the name of this appender, which is #NAME.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  String name = appender.getName(); // "InMemory"
`

ignoreExceptions

public boolean ignoreExceptions()

Returns null because this appender does not use a Layout.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  Layout layout = appender.getLayout(); // null
`

getHandler

public ErrorHandler getHandler()

Returns null because this appender does not use an ErrorHandler.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  ErrorHandler handler = appender.getHandler(); // null
`

setHandler

public void setHandler(ErrorHandler handler)

No-op: this appender does not support setting an ErrorHandler.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  appender.setHandler(null); // no-op
`

initialize

public void initialize()

Initializes the appender lifecycle.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  appender.initialize();
`

start

public void start()

Starts the appender lifecycle.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  appender.start();
  // appender is now ready to record events
`

stop

public void stop()

Stops the appender lifecycle and clears all recorded LogEvent instances.

Example Usage

`InMemoryAppender appender = new InMemoryAppender();
  appender.start();
  appender.append(event);
  appender.stop(); // clears buffered events
`

transfer

public void transfer(Appender appender)

Transfer all log events to another Appender

Example Usage

`InMemoryAppender source = new InMemoryAppender();
  source.start();
  source.append(event);
  FileAppender target = ...;
  source.transfer(target);
`

findInMemoryAppender

public static InMemoryAppender findInMemoryAppender()

Finds and returns the InMemoryAppender registered in the current Log4j2 configuration, or null if none is registered.

Example Usage

`InMemoryAppender appender = InMemoryAppender.findInMemoryAppender();
  if (appender != null) {
    appender.transfer(anotherAppender);
  `
}

See Also

  • Appender

This documentation was auto-generated from the source code of microsphere-logging.

Clone this wiki locally