Class AbstractLogEvent

  • All Implemented Interfaces:
    java.io.Serializable, LogEvent

    public abstract class AbstractLogEvent
    extends java.lang.Object
    implements LogEvent
    An abstract log event implementation with default values for all methods. The setters are no-ops.
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ReadOnlyStringMap getContextData()
      Returns the ReadOnlyStringMap object holding context data key-value pairs.
      java.util.Map<java.lang.String,​java.lang.String> getContextMap()
      Returns Collections.emptyMap().
      ThreadContext.ContextStack getContextStack()
      Gets the context stack (also known as Nested Diagnostic Context or NDC).
      Instant getInstant()
      Returns the Instant when the message was logged.
      Level getLevel()
      Gets the level.
      java.lang.String getLoggerFqcn()
      Returns the fully qualified class name of the caller of the logging API.
      java.lang.String getLoggerName()
      Gets the logger name.
      Marker getMarker()
      Gets the Marker associated with the event.
      Message getMessage()
      Gets the message associated with the event.
      protected MutableInstant getMutableInstant()  
      long getNanoTime()
      Returns the value of the running Java Virtual Machine's high-resolution time source when this event was created, or a dummy value if it is known that this value will not be used downstream.
      java.lang.StackTraceElement getSource()
      Gets the source of logging request.
      long getThreadId()
      Gets the thread ID.
      java.lang.String getThreadName()
      Gets the thread name.
      int getThreadPriority()
      Gets the thread priority.
      java.lang.Throwable getThrown()
      Gets throwable associated with logging request.
      ThrowableProxy getThrownProxy()
      Gets throwable proxy associated with logging request.
      long getTimeMillis()
      Gets event time in milliseconds since midnight, January 1, 1970 UTC.
      boolean isEndOfBatch()
      Returns true if this event is the last one in a batch, false otherwise.
      boolean isIncludeLocation()
      Returns whether the source of the logging request is required downstream.
      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.
      LogEvent toImmutable()
      Subclasses should implement this method to provide an immutable version.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractLogEvent

        public AbstractLogEvent()
    • Method Detail

      • toImmutable

        public LogEvent toImmutable()
        Subclasses should implement this method to provide an immutable version.
        Specified by:
        toImmutable in interface LogEvent
        Returns:
        an immutable version of this log event
      • getContextData

        public ReadOnlyStringMap getContextData()
        Description copied from interface: LogEvent
        Returns the ReadOnlyStringMap object holding context data key-value pairs.

        Context data (also known as Mapped Diagnostic Context or MDC) is data that is set by the application to be included in all subsequent log events. The default source for context data is the ThreadContext (and properties configured on the Logger that logged the event), but users can configure a custom ContextDataInjector to inject key-value pairs from any arbitrary source.

        Specified by:
        getContextData in interface LogEvent
        Returns:
        the ReadOnlyStringMap object holding context data key-value pairs
        See Also:
        ContextDataInjector, ThreadContext
      • getContextMap

        public java.util.Map<java.lang.String,​java.lang.String> getContextMap()
        Returns Collections.emptyMap().
        Specified by:
        getContextMap in interface LogEvent
        Returns:
        The context map, never null.
      • getLevel

        public Level getLevel()
        Description copied from interface: LogEvent
        Gets the level.
        Specified by:
        getLevel in interface LogEvent
        Returns:
        level.
      • getLoggerFqcn

        public java.lang.String getLoggerFqcn()
        Description copied from interface: LogEvent
        Returns the fully qualified class name of the caller of the logging API.
        Specified by:
        getLoggerFqcn in interface LogEvent
        Returns:
        The fully qualified class name of the caller.
      • getLoggerName

        public java.lang.String getLoggerName()
        Description copied from interface: LogEvent
        Gets the logger name.
        Specified by:
        getLoggerName in interface LogEvent
        Returns:
        logger name, may be null.
      • getMarker

        public Marker getMarker()
        Description copied from interface: LogEvent
        Gets the Marker associated with the event.
        Specified by:
        getMarker in interface LogEvent
        Returns:
        Marker or null if no Marker was defined on this LogEvent
      • getMessage

        public Message getMessage()
        Description copied from interface: LogEvent
        Gets the message associated with the event.
        Specified by:
        getMessage in interface LogEvent
        Returns:
        message.
      • getSource

        public java.lang.StackTraceElement getSource()
        Description copied from interface: LogEvent
        Gets the source of logging request.
        Specified by:
        getSource in interface LogEvent
        Returns:
        source of logging request, may be null.
      • getThreadId

        public long getThreadId()
        Description copied from interface: LogEvent
        Gets the thread ID.
        Specified by:
        getThreadId in interface LogEvent
        Returns:
        thread ID.
      • getThreadName

        public java.lang.String getThreadName()
        Description copied from interface: LogEvent
        Gets the thread name.
        Specified by:
        getThreadName in interface LogEvent
        Returns:
        thread name, may be null. TODO guess this could go into a thread context object too. (RG) Why?
      • getThreadPriority

        public int getThreadPriority()
        Description copied from interface: LogEvent
        Gets the thread priority.
        Specified by:
        getThreadPriority in interface LogEvent
        Returns:
        thread priority.
      • getThrown

        public java.lang.Throwable getThrown()
        Description copied from interface: LogEvent
        Gets throwable associated with logging request.

        Convenience method for ThrowableProxy.getThrowable();

        Specified by:
        getThrown in interface LogEvent
        Returns:
        throwable, may be null.
      • getThrownProxy

        public ThrowableProxy getThrownProxy()
        Description copied from interface: LogEvent
        Gets throwable proxy associated with logging request.
        Specified by:
        getThrownProxy in interface LogEvent
        Returns:
        throwable, may be null.
      • getTimeMillis

        public long getTimeMillis()
        Description copied from interface: LogEvent
        Gets event time in milliseconds since midnight, January 1, 1970 UTC. Use LogEvent.getInstant() to get higher precision timestamp information if available on this platform.
        Specified by:
        getTimeMillis in interface LogEvent
        Returns:
        the milliseconds component of this log event's timestamp
        See Also:
        System.currentTimeMillis()
      • getInstant

        public Instant getInstant()
        Description copied from interface: LogEvent
        Returns the Instant when the message was logged.

        Caution: if this LogEvent implementation is mutable and reused for multiple consecutive log messages, then the Instant object returned by this method is also mutable and reused. Client code should not keep a reference to the returned object but make a copy instead.

        Specified by:
        getInstant in interface LogEvent
        Returns:
        the Instant holding Instant details for this log event
      • getMutableInstant

        protected final MutableInstant getMutableInstant()
      • isEndOfBatch

        public boolean isEndOfBatch()
        Description copied from interface: LogEvent
        Returns true if this event is the last one in a batch, false otherwise. 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:
        isEndOfBatch in interface LogEvent
        Returns:
        whether this event is the last one in a batch.
      • isIncludeLocation

        public boolean isIncludeLocation()
        Description copied from interface: LogEvent
        Returns 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:
        isIncludeLocation in interface LogEvent
        Returns:
        true if the source of the logging request is required downstream, false otherwise.
        See Also:
        LogEvent.getSource()
      • setEndOfBatch

        public 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.
      • setIncludeLocation

        public 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()
      • getNanoTime

        public long getNanoTime()
        Description copied from interface: LogEvent
        Returns the value of the running Java Virtual Machine's high-resolution time source when this event was created, or a dummy value if it is known that this value will not be used downstream.
        Specified by:
        getNanoTime in interface LogEvent
        Returns:
        The value of the running Java Virtual Machine's high-resolution time source when this event was created.