Class Log4jLogEvent

    • Constructor Detail

      • Log4jLogEvent

        public Log4jLogEvent()
      • Log4jLogEvent

        @Deprecated
        public Log4jLogEvent​(long timestamp)
        Deprecated.
        use Log4jLogEvent.Builder instead. This constructor will be removed in an upcoming release.
      • Log4jLogEvent

        @Deprecated
        public Log4jLogEvent​(String loggerName,
                             Marker marker,
                             String loggerFQCN,
                             Level level,
                             Message message,
                             Throwable t)
        Deprecated.
        use Log4jLogEvent.Builder instead. This constructor will be removed in an upcoming release.
        Constructor.
        Parameters:
        loggerName - The name of the Logger.
        marker - The Marker or null.
        loggerFQCN - The fully qualified class name of the caller.
        level - The logging Level.
        message - The Message.
        t - A Throwable or null.
      • Log4jLogEvent

        public Log4jLogEvent​(String loggerName,
                             Marker marker,
                             String loggerFQCN,
                             Level level,
                             Message message,
                             List<Property> properties,
                             Throwable t)
        Constructor.
        Parameters:
        loggerName - The name of the Logger.
        marker - The Marker or null.
        loggerFQCN - The fully qualified class name of the caller.
        level - The logging Level.
        message - The Message.
        properties - the properties to be merged with ThreadContext key-value pairs into the event's ReadOnlyStringMap.
        t - A Throwable or null.
      • Log4jLogEvent

        public Log4jLogEvent​(String loggerName,
                             Marker marker,
                             String loggerFQCN,
                             StackTraceElement source,
                             Level level,
                             Message message,
                             List<Property> properties,
                             Throwable t)
        Constructor.
        Parameters:
        loggerName - The name of the Logger.
        marker - The Marker or null.
        loggerFQCN - The fully qualified class name of the caller.
        level - The logging Level.
        message - The Message.
        properties - the properties to be merged with ThreadContext key-value pairs into the event's ReadOnlyStringMap.
        t - A Throwable or null.
      • Log4jLogEvent

        @Deprecated
        public Log4jLogEvent​(String loggerName,
                             Marker marker,
                             String loggerFQCN,
                             Level level,
                             Message message,
                             Throwable t,
                             Map<String,​String> mdc,
                             ThreadContext.ContextStack ndc,
                             String threadName,
                             StackTraceElement location,
                             long timestampMillis)
        Deprecated.
        use Log4jLogEvent.Builder instead. This constructor will be removed in an upcoming release.
        Constructor.
        Parameters:
        loggerName - The name of the Logger.
        marker - The Marker or null.
        loggerFQCN - The fully qualified class name of the caller.
        level - The logging Level.
        message - The Message.
        t - A Throwable or null.
        mdc - The mapped diagnostic context.
        ndc - the nested diagnostic context.
        threadName - The name of the thread.
        location - The locations of the caller.
        timestampMillis - The timestamp of the event.
    • Method Detail

      • newBuilder

        public static Log4jLogEvent.Builder newBuilder()
        Returns a new empty Log4jLogEvent.Builder with all fields empty.
        Returns:
        a new empty builder.
      • createEvent

        @Deprecated
        public static Log4jLogEvent createEvent​(String loggerName,
                                                Marker marker,
                                                String loggerFQCN,
                                                Level level,
                                                Message message,
                                                Throwable thrown,
                                                ThrowableProxy thrownProxy,
                                                Map<String,​String> mdc,
                                                ThreadContext.ContextStack ndc,
                                                String threadName,
                                                StackTraceElement location,
                                                long timestamp)
        Deprecated.
        use Log4jLogEvent.Builder instead. This method will be removed in an upcoming release.
        Create a new LogEvent.
        Parameters:
        loggerName - The name of the Logger.
        marker - The Marker or null.
        loggerFQCN - The fully qualified class name of the caller.
        level - The logging Level.
        message - The Message.
        thrown - A Throwable or null.
        thrownProxy - A ThrowableProxy or null.
        mdc - The mapped diagnostic context.
        ndc - the nested diagnostic context.
        threadName - The name of the thread.
        location - The locations of the caller.
        timestamp - The timestamp of the event.
        Returns:
        a new LogEvent
      • getNanoClock

        public static NanoClock getNanoClock()
        Returns the NanoClock to use for creating the nanoTime timestamp of log events.
        Returns:
        the NanoClock to use for creating the nanoTime timestamp of log events
      • setNanoClock

        public static void setNanoClock​(NanoClock nanoClock)
        Sets the NanoClock to use for creating the nanoTime timestamp of log events.

        FOR INTERNAL USE. This method may be called with a different NanoClock implementation when the configuration changes.

        Parameters:
        nanoClock - the NanoClock to use for creating the nanoTime timestamp of log events
      • asBuilder

        public Log4jLogEvent.Builder asBuilder()
        Returns a new fully initialized Log4jLogEvent.Builder containing a copy of all fields of this event.
        Returns:
        a new fully initialized builder.
      • 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
      • getLevel

        public Level getLevel()
        Returns the logging Level.
        Specified by:
        getLevel in interface LogEvent
        Returns:
        the Level associated with this event.
      • getLoggerName

        public String getLoggerName()
        Returns the name of the Logger used to generate the event.
        Specified by:
        getLoggerName in interface LogEvent
        Returns:
        The Logger name.
      • getMessage

        public Message getMessage()
        Returns the Message associated with the event.
        Specified by:
        getMessage in interface LogEvent
        Returns:
        The Message.
      • makeMessageImmutable

        public void makeMessageImmutable()
      • getThreadId

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

        public String getThreadName()
        Returns the name of the Thread on which the event was generated.
        Specified by:
        getThreadName in interface LogEvent
        Returns:
        The name of the Thread.
      • getThreadPriority

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

        public Instant getInstant()
        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
        Since:
        2.11
      • getThrown

        public Throwable getThrown()
        Returns the Throwable associated with the event, or null.
        Specified by:
        getThrown in interface LogEvent
        Returns:
        The Throwable associated with the 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.
      • getMarker

        public Marker getMarker()
        Returns the Marker associated with the event, or null.
        Specified by:
        getMarker in interface LogEvent
        Returns:
        the Marker associated with the event.
      • getLoggerFqcn

        public String getLoggerFqcn()
        The fully qualified class name of the class that was called by the caller.
        Specified by:
        getLoggerFqcn in interface LogEvent
        Returns:
        the fully qualified class name of the class that is performing logging.
      • getContextMap

        public Map<String,​String> getContextMap()
        Returns the immutable copy of the ThreadContext Map.
        Specified by:
        getContextMap in interface LogEvent
        Returns:
        The context Map.
      • 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.
      • 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.
      • writeReplace

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

        public static Serializable serialize​(LogEvent event,
                                             boolean includeLocation)
        Take a snapshot of the specified LogEvent.
        Parameters:
        event - the event to take a snapshot of
        includeLocation - if true, this method will obtain caller location information
        Returns:
        snapshot of the event as a Serializable object
        See Also:
        deserialize(Serializable), serialize(Log4jLogEvent, boolean)
      • serialize

        public static Serializable serialize​(Log4jLogEvent event,
                                             boolean includeLocation)
        Take a snapshot of the specified Log4jLogEvent.
        Parameters:
        event - the event to take a snapshot of
        includeLocation - if true, this method will obtain caller location information
        Returns:
        snapshot of the event as a Serializable object
        See Also:
        deserialize(Serializable), serialize(LogEvent, boolean)
      • canDeserialize

        public static boolean canDeserialize​(Serializable event)
      • createMemento

        public static Log4jLogEvent createMemento​(LogEvent event,
                                                  boolean includeLocation)
        Creates and returns a new immutable copy of this Log4jLogEvent.
        Returns:
        a new immutable copy of the data in this Log4jLogEvent
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object