-
Notifications
You must be signed in to change notification settings - Fork 1
io microsphere logging log4j2 appender 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
In-Memory Appender records any LogEvent
public class InMemoryAppender extends AbstractLifeCycle implements AppenderAuthor: Mercy
-
Introduced in:
1.0.0 -
Current Project Version:
0.1.14-SNAPSHOT
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 |
InMemoryAppender appender = new InMemoryAppender();
appender.start();
LogEvent event = Log4jLogEvent.newBuilder()
.setLoggerName("test.logger")
.setLevel(Level.INFO)
.setMessage(new SimpleMessage("hello"))
.build();
appender.append(event);InMemoryAppender appender = new InMemoryAppender();
String name = appender.getName(); // "InMemory"InMemoryAppender appender = new InMemoryAppender();
Layout<?> layout = appender.getLayout(); // nullInMemoryAppender appender = new InMemoryAppender();
boolean ignore = appender.ignoreExceptions(); // falseInMemoryAppender appender = new InMemoryAppender();
ErrorHandler handler = appender.getHandler(); // nullInMemoryAppender appender = new InMemoryAppender();
appender.setHandler(null); // no-opInMemoryAppender appender = new InMemoryAppender();
appender.initialize();InMemoryAppender appender = new InMemoryAppender();
appender.start();
// appender is now ready to record eventsInMemoryAppender appender = new InMemoryAppender();
appender.start();
appender.append(event);
appender.stop(); // clears buffered eventsInMemoryAppender source = new InMemoryAppender();
source.start();
source.append(event);
FileAppender target = ...;
source.transfer(target);InMemoryAppender appender = InMemoryAppender.findInMemoryAppender();
if (appender != null) {
appender.transfer(anotherAppender);
}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 io.microsphere.logging.log4j2.appender.InMemoryAppender;| 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, |
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.
`InMemoryAppender appender = new InMemoryAppender();
appender.start();
LogEvent event = Log4jLogEvent.newBuilder()
.setLoggerName("test.logger")
.setLevel(Level.INFO)
.setMessage(new SimpleMessage("hello"))
.build();
appender.append(event);
`
public String getName()Returns the name of this appender, which is #NAME.
`InMemoryAppender appender = new InMemoryAppender(); String name = appender.getName(); // "InMemory" `
public boolean ignoreExceptions()Returns null because this appender does not use a Layout.
`InMemoryAppender appender = new InMemoryAppender(); Layout layout = appender.getLayout(); // null `
public ErrorHandler getHandler()Returns null because this appender does not use an ErrorHandler.
`InMemoryAppender appender = new InMemoryAppender(); ErrorHandler handler = appender.getHandler(); // null `
public void setHandler(ErrorHandler handler)No-op: this appender does not support setting an ErrorHandler.
`InMemoryAppender appender = new InMemoryAppender(); appender.setHandler(null); // no-op `
public void initialize()Initializes the appender lifecycle.
`InMemoryAppender appender = new InMemoryAppender(); appender.initialize(); `
public void start()Starts the appender lifecycle.
`InMemoryAppender appender = new InMemoryAppender(); appender.start(); // appender is now ready to record events `
public void stop()Stops the appender lifecycle and clears all recorded LogEvent instances.
`InMemoryAppender appender = new InMemoryAppender(); appender.start(); appender.append(event); appender.stop(); // clears buffered events `
public void transfer(Appender appender)Transfer all log events to another Appender
`InMemoryAppender source = new InMemoryAppender(); source.start(); source.append(event); FileAppender target = ...; source.transfer(target); `
public static InMemoryAppender findInMemoryAppender()Finds and returns the InMemoryAppender registered in the current Log4j2 configuration,
or null if none is registered.
`InMemoryAppender appender = InMemoryAppender.findInMemoryAppender();
if (appender != null) {
appender.transfer(anotherAppender);
`
}
Appender
This documentation was auto-generated from the source code of microsphere-logging.
java-logging
log4j
log4j2
- DelegatingLayout
- InMemoryAppender
- Log4j2Logger
- Log4j2LoggerFactory
- Log4j2Logging
- Log4j2Utils
- LogEventComparator
- SmartFileAppenderLayout
logback
logging-commons
- DefaultLoggingLevelsResolver
- Logging
- LoggingLevelsResolver
- LoggingMXBeanAdapter
- LoggingMXBeanRegistrar
- LoggingUtils
logging-examples
logging-test