Class MutableLogEvent

    • Constructor Detail

      • MutableLogEvent

        public MutableLogEvent()
      • MutableLogEvent

        public MutableLogEvent​(StringBuilder msgText,
                               Object[] replacementParameters)
    • Method Detail

      • toImmutable

        public Log4jLogEvent toImmutable()
        Description copied from interface: LogEvent
        Returns an immutable version of this log event, which MAY BE a copy of this event.
        Specified by:
        toImmutable in interface LogEvent
        Returns:
        an immutable version of this log event
      • initFrom

        public void initFrom​(LogEvent event)
        Initialize the fields of this MutableLogEvent from another event. Similar in purpose and usage as Log4jLogEvent.LogEventProxy, but a mutable version.

        This method is used on async logger ringbuffer slots holding MutableLogEvent objects in each slot.

        Parameters:
        event - the event to copy data from
      • clear

        public void clear()
        Clears all references this event has to other objects.
      • getLoggerFqcn

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

        public void setLoggerFqcn​(String loggerFqcn)
      • 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
      • setMarker

        public void setMarker​(Marker marker)
      • getLevel

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

        public void setLevel​(Level level)
      • getLoggerName

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

        public void setLoggerName​(String loggerName)
      • getMessage

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

        public void setMessage​(Message msg)
      • swapParameters

        public Object[] swapParameters​(Object[] emptyReplacement)
        Replaces this ReusableMessage's parameter array with the specified value and return the original array
        Specified by:
        swapParameters in interface ReusableMessage
        Parameters:
        emptyReplacement - the parameter array that can be used for subsequent uses of this reusable message
        Returns:
        the original parameter array
        See Also:
        ReusableMessage.swapParameters(Object[])
      • getThrown

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

        public void setThrown​(Throwable thrown)
      • setTimeMillis

        public void setTimeMillis​(long timeMillis)
      • 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
      • getThrownProxy

        public ThrowableProxy getThrownProxy()
        Returns the ThrowableProxy associated with the event, or null.
        Specified by:
        getThrownProxy in interface LogEvent
        Returns:
        The ThrowableProxy associated with the event.
      • getSource

        public StackTraceElement getSource()
        Returns the StackTraceElement for the caller. This will be the entry that occurs right before the first occurrence of FQCN as a class name.
        Specified by:
        getSource in interface LogEvent
        Returns:
        the StackTraceElement for the caller.
      • 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 Map<String,​String> getContextMap()
        Description copied from interface: LogEvent
        Gets the context map (also know as Mapped Diagnostic Context or MDC).
        Specified by:
        getContextMap in interface LogEvent
        Returns:
        The context map, never null.
      • setContextData

        public void setContextData​(StringMap mutableContextData)
      • getThreadId

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

        public void setThreadId​(long threadId)
      • getThreadName

        public 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?
      • setThreadName

        public void setThreadName​(String threadName)
      • getThreadPriority

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

        public void setThreadPriority​(int threadPriority)
      • 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()
      • setIncludeLocation

        public void setIncludeLocation​(boolean includeLocation)
        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:
        includeLocation - true if the source of the logging request is required downstream, false otherwise.
        See Also:
        LogEvent.getSource()
      • 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.
      • 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.
      • 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.
      • setNanoTime

        public void setNanoTime​(long nanoTime)
      • writeReplace

        protected Object writeReplace()
        Creates a LogEventProxy that can be serialized.
        Returns:
        a LogEventProxy.
      • createMemento

        public Log4jLogEvent createMemento()
        Creates and returns a new immutable copy of this MutableLogEvent. If isIncludeLocation() is true, this will obtain caller location information.
        Returns:
        a new immutable copy of the data in this MutableLogEvent
      • initializeBuilder

        public void initializeBuilder​(Log4jLogEvent.Builder builder)
        Initializes the specified Log4jLogEvent.Builder from this MutableLogEvent.
        Parameters:
        builder - the builder whose fields to populate