Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.logging.log4j.core.appender.db.jpa
Class AbstractLogEventWrapperEntity

    java.lang.Object
      org.apache.logging.log4j.core.appender.db.jpa.AbstractLogEventWrapperEntity

All Implemented Interfaces:
  Serializable, LogEvent

Direct Known Subclasses:
  BasicLogEventEntity

    @MappedSuperclass
    public abstract class AbstractLogEventWrapperEntity

extends Object
implements LogEvent

Users of the JPA appender MUST extend this class, using JPA annotations on the concrete class and all of its accessor methods (as needed) to map them to the proper table and columns. Accessors you do not want persisted should be annotated with `@Transient`. All accessors should call `getWrappedEvent()` and delegate the call to the underlying event. Users may want to instead extend `BasicLogEventEntity`, which takes care of all of this for you.

The concrete class must have two constructors: a public no-arg constructor to convince the JPA provider that it's a valid entity, and a public constructor that takes a single `event` and passes it to the parent class with `super(event)`. Furthermore, the concrete class must be annotated `@Entity` and `@Table` and must implement a fully mutable ID property annotated with `@Id` and `@GeneratedValue` to tell the JPA provider how to calculate an ID for new events.

Many of the return types of `LogEvent` methods (e.g., `StackTraceElement`, `Message`, `Marker`, `Throwable`, `ThreadContext.ContextStack`, and `Map<String, String>`) will not be recognized by the JPA provider. In conjunction with `@Convert`, you can use the converters in the `org.apache.logging.log4j.core.appender.db.jpa.converter` package to convert these types to database columns. If you want to retrieve log events from the database, you can create a true POJO entity and also use these converters for extracting persisted values.

The mutator methods in this class not specified in `LogEvent` are no-op methods, implemented to satisfy the JPA requirement that accessor methods have matching mutator methods. If you create additional accessor methods, you must likewise create matching no-op mutator methods.

See Also:
  `BasicLogEventEntity`, Serialized Form

Constructor Summary
`protected` | `AbstractLogEventWrapperEntity()` Instantiates this base class.
`protected` | `AbstractLogEventWrapperEntity(LogEvent wrappedEvent)` Instantiates this base class.

Method Summary
`protected LogEvent` | `getWrappedEvent()` All eventual accessor methods must call this method and delegate the method call to the underlying wrapped event.
`boolean` | `isEndOfBatch()` Indicates whether this event is the last one in a batch.
`boolean` | `isIncludeLocation()` Indicates whether the source of the logging request is required downstream.
`void` | `setContextMap(Map<String,String> contextMap)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setContextStack(org.apache.logging.log4j.ThreadContext.ContextStack contextStack)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setEndOfBatch(boolean endOfBatch)` Sets whether this event is the last one in a batch.
`void` | `setIncludeLocation(boolean locationRequired)` Sets whether the source of the logging request is required downstream.
`void` | `setLevel(org.apache.logging.log4j.Level level)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setLoggerFqcn(String fqcn)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setLoggerName(String loggerName)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setMarker(org.apache.logging.log4j.Marker marker)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setMessage(org.apache.logging.log4j.message.Message message)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setSource(StackTraceElement source)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setThreadName(String threadName)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setThrown(Throwable throwable)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.
`void` | `setTimeMillis(long millis)` A no-op mutator to satisfy JPA requirements, as this entity is write-only.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.logging.log4j.core.LogEvent
`getContextMap, getContextStack, getLevel, getLoggerFqcn, getLoggerName, getMarker, getMessage, getSource, getThreadName, getThrown, getThrownProxy, getTimeMillis`

Constructor Detail

### AbstractLogEventWrapperEntity

    protected AbstractLogEventWrapperEntity()

  Instantiates this base class. All concrete implementations must have a constructor matching this constructor's signature. The no-argument constructor is required for a standards-compliant JPA provider to accept this as an entity.

### AbstractLogEventWrapperEntity

    protected AbstractLogEventWrapperEntity(LogEvent wrappedEvent)

  Instantiates this base class. All concrete implementations must have a constructor matching this constructor's signature. This constructor is used for wrapping this entity around a logged event.

  Parameters:
    `wrappedEvent` - The underlying event from which information is obtained.

Method Detail

### getWrappedEvent

    protected final LogEvent getWrappedEvent()

  All eventual accessor methods must call this method and delegate the method call to the underlying wrapped event. Annotated `Transient` so as not to be included in the persisted entity.

  Returns:
    The underlying event from which information is obtained.

### setLevel

    public void setLevel(org.apache.logging.log4j.Level level)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `level` - Ignored.

### setLoggerName

    public void setLoggerName(String loggerName)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `loggerName` - Ignored.

### setSource

    public void setSource(StackTraceElement source)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `source` - Ignored.

### setMessage

    public void setMessage(org.apache.logging.log4j.message.Message message)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `message` - Ignored.

### setMarker

    public void setMarker(org.apache.logging.log4j.Marker marker)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `marker` - Ignored.

### setThreadName

    public void setThreadName(String threadName)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `threadName` - Ignored.

### setTimeMillis

    public void setTimeMillis(long millis)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `millis` - Ignored.

### setThrown

    public void setThrown(Throwable throwable)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `throwable` - Ignored.

### setContextMap

    public void setContextMap(Map<String,String> contextMap)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `contextMap` - Ignored.

### setContextStack

    public void setContextStack(org.apache.logging.log4j.ThreadContext.ContextStack contextStack)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `contextStack` - Ignored.

### setLoggerFqcn

    public void setLoggerFqcn(String fqcn)

  A no-op mutator to satisfy JPA requirements, as this entity is write-only.

  Parameters:
    `fqcn` - Ignored.

### isIncludeLocation

    public final boolean isIncludeLocation()

  Indicates whether the source of the logging request is required downstream. Annotated `@Transient` so as to not be included in the persisted entity.

  Specified by:
    `isIncludeLocation` in interface `LogEvent`
  Returns:
    whether the source of the logging request is required downstream.
  See Also:
    `LogEvent.getSource()`

### setIncludeLocation

    public final void setIncludeLocation(boolean locationRequired)

  Description copied from interface: `LogEvent`
  Sets whether the source of the logging request is required downstream. Asynchronous Loggers and Appenders use this flag to determine whether to take a `StackTrace` snapshot or not before handing off this event to another thread.

  Specified by:
    `setIncludeLocation` in interface `LogEvent`
  Parameters:
    `locationRequired` - `true` if the source of the logging request is required downstream, `false` otherwise.
  See Also:
    `LogEvent.getSource()`

### isEndOfBatch

    public final boolean isEndOfBatch()

  Indicates whether this event is the last one in a batch. Annotated `@Transient` so as to not be included in the persisted entity.

  Specified by:
    `isEndOfBatch` in interface `LogEvent`
  Returns:
    whether this event is the last one in a batch.

### setEndOfBatch

    public final void setEndOfBatch(boolean endOfBatch)

  Description copied from interface: `LogEvent`
  Sets whether this event is the last one in a batch. Used by asynchronous Loggers and Appenders to signal to buffered downstream components when to flush to disk, as a more efficient alternative to the `immediateFlush=true` configuration.

  Specified by:
    `setEndOfBatch` in interface `LogEvent`
  Parameters:
    `endOfBatch` - `true` if this event is the last one in a batch, `false` otherwise.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.