Class LoggingEvent

java.lang.Object
ch.qos.logback.classic.spi.LoggingEvent
All Implemented Interfaces:
ILoggingEvent, DeferredProcessingAware

public class LoggingEvent extends Object implements ILoggingEvent
The internal representation of logging events. When an affirmative decision is made to log then a LoggingEvent instance is created. This instance is passed around to the different logback-classic components.

Writers of logback-classic components such as appenders should be aware of that some of the LoggingEvent fields are initialized lazily. Therefore, an appender wishing to output data to be later correctly read by a receiver, must initialize "lazy" fields prior to writing them out. See the prepareForDeferredProcessing() method for the exact list.

Author:
Ceki Gülcü, Sébastien Pennec
  • Constructor Details

  • Method Details

    • setArgumentArray

      public void setArgumentArray(Object[] argArray)
    • getArgumentArray

      public Object[] getArgumentArray()
      Specified by:
      getArgumentArray in interface ILoggingEvent
    • addKeyValuePair

      public void addKeyValuePair(org.slf4j.event.KeyValuePair kvp)
    • setKeyValuePairs

      public void setKeyValuePairs(List<org.slf4j.event.KeyValuePair> kvpList)
    • getKeyValuePairs

      public List<org.slf4j.event.KeyValuePair> getKeyValuePairs()
      Description copied from interface: ILoggingEvent
      A list of KeyValuePair objects. The returned list may be null.
      Specified by:
      getKeyValuePairs in interface ILoggingEvent
      Returns:
      may be null
    • getLevel

      public Level getLevel()
      Specified by:
      getLevel in interface ILoggingEvent
    • getLoggerName

      public String getLoggerName()
      Specified by:
      getLoggerName in interface ILoggingEvent
    • setLoggerName

      public void setLoggerName(String loggerName)
    • getThreadName

      public String getThreadName()
      Specified by:
      getThreadName in interface ILoggingEvent
    • setThreadName

      public void setThreadName(String threadName) throws IllegalStateException
      Parameters:
      threadName - The threadName to set.
      Throws:
      IllegalStateException - If threadName has been already set.
    • getThrowableProxy

      public IThrowableProxy getThrowableProxy()
      Returns the throwable information contained within this event. May be null if there is no such information.
      Specified by:
      getThrowableProxy in interface ILoggingEvent
    • setThrowableProxy

      public void setThrowableProxy(ThrowableProxy tp)
      Set this event's throwable information.
    • prepareForDeferredProcessing

      public void prepareForDeferredProcessing()
      This method should be called prior to serializing an event. It should also be called when using asynchronous or deferred logging.

      Note that due to performance concerns, this method does NOT extract caller data. It is the responsibility of the caller to extract caller information.

      Specified by:
      prepareForDeferredProcessing in interface DeferredProcessingAware
      Specified by:
      prepareForDeferredProcessing in interface ILoggingEvent
    • setLoggerContext

      public void setLoggerContext(LoggerContext lc)
    • getLoggerContextVO

      public LoggerContextVO getLoggerContextVO()
      Specified by:
      getLoggerContextVO in interface ILoggingEvent
    • setLoggerContextRemoteView

      public void setLoggerContextRemoteView(LoggerContextVO loggerContextVO)
    • getMessage

      public String getMessage()
      Specified by:
      getMessage in interface ILoggingEvent
    • setMessage

      public void setMessage(String message)
    • getInstant

      public Instant getInstant()
      Return the Instant corresponding to the creation of this event.
      Specified by:
      getInstant in interface ILoggingEvent
      Returns:
      the Instant the event was created.
      Since:
      1.3
    • setInstant

      public void setInstant(Instant instant)
      Set Instant corresponding to the creation of this event. The value of getTimeStamp() will be overridden as well.
    • getTimeStamp

      public long getTimeStamp()
      Return the number of elapsed milliseconds since epoch in UTC.
      Specified by:
      getTimeStamp in interface ILoggingEvent
      Returns:
      the number of elapsed milliseconds since epoch
    • getNanoseconds

      public int getNanoseconds()
      Return the number of nanoseconds past the timestamp in seconds.
      Specified by:
      getNanoseconds in interface ILoggingEvent
      Returns:
      the number of elapsed nanoseconds as found in ILoggingEvent.getInstant()
      Since:
      1.3.0
    • setTimeStamp

      public void setTimeStamp(long timeStamp)
      Set the number of elapsed milliseconds since epoch in UTC. Setting the timestamp will override the value contained in getInstant(). Nanoseconds value will be computed form the provided millisecond value.
    • getSequenceNumber

      public long getSequenceNumber()
      Description copied from interface: ILoggingEvent
      The sequence number associated with this event.

      Sequence numbers, if present, should be increasing monotonically.

      Specified by:
      getSequenceNumber in interface ILoggingEvent
    • setSquenceNumber

      public void setSquenceNumber(long sn)
    • setLevel

      public void setLevel(Level level)
    • getCallerData

      public StackTraceElement[] getCallerData()
      Get the caller information for this logging event. If caller information is null at the time of its invocation, this method extracts location information. The collected information is cached for future use.

      Note that after serialization it is impossible to correctly extract caller information.

      Specified by:
      getCallerData in interface ILoggingEvent
      Returns:
      the caller data associated with this event.
      See Also:
    • hasCallerData

      public boolean hasCallerData()
      Description copied from interface: ILoggingEvent
      If this event has caller data, then true is returned. Otherwise the returned value is null.

      Logback components wishing to use caller data if available without causing it to be computed can invoke this method before invoking ILoggingEvent.getCallerData().

      Specified by:
      hasCallerData in interface ILoggingEvent
      Returns:
      whether this event has caller data
    • setCallerData

      public void setCallerData(StackTraceElement[] callerDataArray)
    • getMarkerList

      public List<org.slf4j.Marker> getMarkerList()
      Description copied from interface: ILoggingEvent
      Since SLF4J 2.0.0, the slf4j logging API assumes the possibility of multiple Marker instances in a logging event. Consequently, ILoggingEvent needs to cater for this possibility.
      Specified by:
      getMarkerList in interface ILoggingEvent
      Returns:
      the marker list, may be null
    • addMarker

      public void addMarker(org.slf4j.Marker marker)
    • getContextBirthTime

      public long getContextBirthTime()
    • getFormattedMessage

      public String getFormattedMessage()
      Specified by:
      getFormattedMessage in interface ILoggingEvent
    • getMDCPropertyMap

      public Map<String,String> getMDCPropertyMap()
      Description copied from interface: ILoggingEvent
      Returns the MDC map. The returned value can be an empty map but not null.
      Specified by:
      getMDCPropertyMap in interface ILoggingEvent
    • setMDCPropertyMap

      public void setMDCPropertyMap(Map<String,String> map)
      Set the MDC map for this event.
      Parameters:
      map -
      Since:
      1.0.8
    • getMdc

      public Map<String,String> getMdc()
      Deprecated.
      Replaced by [@link #getMDCPropertyMap}
      Synonym for [@link #getMDCPropertyMap}.
      Specified by:
      getMdc in interface ILoggingEvent
    • toString

      public String toString()
      Overrides:
      toString in class Object