Skip to content

io microsphere logging log4j2 layout SmartFileAppenderLayout

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

SmartFileAppenderLayout

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

Source: microsphere-log4j2/src/main/java/io/microsphere/logging/log4j2/layout/SmartFileAppenderLayout.java

Overview

Smart Layout to select Layout from FileAppender or RollingFileAppender

Declaration

public class SmartFileAppenderLayout<T extends Serializable> implements Layout<T>

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

getFooter

LoggerContext context = (LoggerContext) LogManager.getContext(false);
  SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  byte[] footer = layout.getFooter();

getHeader

SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  byte[] header = layout.getHeader();

toByteArray

SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  byte[] bytes = layout.toByteArray(logEvent);

toSerializable

SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  Object serialized = layout.toSerializable(logEvent);

getContentType

SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  String contentType = layout.getContentType();

encode

SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  Map<String, String> format = layout.getContentFormat();
SmartFileAppenderLayout<?> layout = new SmartFileAppenderLayout<>(context);
  layout.encode(logEvent, destination);

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.layout.SmartFileAppenderLayout;

API Reference

Public Methods

Method Description
getFooter Creates a new SmartFileAppenderLayout that inspects the given LoggerContext
getHeader {@inheritDoc}
toByteArray {@inheritDoc}
toSerializable {@inheritDoc}
getContentType {@inheritDoc}
encode {@inheritDoc}

Method Details

getFooter

public byte[] getFooter()

Creates a new SmartFileAppenderLayout that inspects the given LoggerContext to select the appropriate delegating Layout per logger name.

Example Usage

`LoggerContext context = (LoggerContext) LogManager.getContext(false);
  SmartFileAppenderLayout layout = new SmartFileAppenderLayout<>(context);
`

getHeader

public byte[] getHeader()

{@inheritDoc}

Example Usage

`SmartFileAppenderLayout layout = new SmartFileAppenderLayout<>(context);
  byte[] header = layout.getHeader();
`

toByteArray

public byte[] toByteArray(LogEvent event)

{@inheritDoc}

Example Usage

`SmartFileAppenderLayout layout = new SmartFileAppenderLayout<>(context);
  byte[] bytes = layout.toByteArray(logEvent);
`

toSerializable

public T toSerializable(LogEvent event)

{@inheritDoc}

Example Usage

`SmartFileAppenderLayout layout = new SmartFileAppenderLayout<>(context);
  Object serialized = layout.toSerializable(logEvent);
`

getContentType

public String getContentType()

{@inheritDoc}

Example Usage

`SmartFileAppenderLayout layout = new SmartFileAppenderLayout<>(context);
  String contentType = layout.getContentType();
`

encode

public void encode(LogEvent source, ByteBufferDestination destination)

{@inheritDoc}

Example Usage

`SmartFileAppenderLayout layout = new SmartFileAppenderLayout<>(context);
  Map format = layout.getContentFormat();
`

/

See Also

  • Layout
  • FileAppender
  • RollingFileAppender
  • InMemoryAppender#NAME

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

Clone this wiki locally