Log Event
When a message is logged, it generates a Log event that is then passed to each of the appenders, usually on a separate thread so as not to impact processing.
These log events are passed to custom filters, formatters and log appenders.
The Log event object consists of the following attributes:
| Attribute | Type | Description |
|---|---|---|
| backtrace | Array<String> |
The thread backtrace if backtraces are enabled. |
| context | Hash |
Named contexts that were captured in-line at the point where the log event was created. |
| dimensions | Hash |
Dimensions supplied during the log call. |
| duration | Float |
The time taken in milli-seconds to complete a measure call. |
| exception | Exception |
Ruby Exception object to log. |
| level | Symbol |
Log level of the supplied log call: :trace, :debug, :info, :warn, :error, :fatal |
| level_index | Integer |
Integer version of level: :trace=>0, :debug=>1, :info=>2, :warn=>3, :error=>4, :fatal=>5 |
| message | String |
Text message to be logged. |
| metric | String |
Metric name to log. |
| metric_amount | Float |
Metric amount supplied on the log call, if any. Used for numeric or counter metrics. |
| name | String |
Class name supplied to the logging instance. |
| named_tags | Hash<String, Object> |
Any named tags active on the thread when the log call was made. |
| payload | Hash |
Optional Hash object to be logged. |
| tags | Array<String> |
Any tags active on the thread when the log call was made. |
| thread_name | String |
Name or id of the thread in which the logging call was called. |
| time | Time |
The time at which the log entry was created. |
Other helper methods on the log event object:
| Method | Type | Description |
|---|---|---|
| backtrace_to_s | String |
The exception backtrace as a string, including the entire chain of exceptions. |
| cleansed_message | String |
Strip the standard Rails colorizing from the logged message. |
| duration_human | String |
The duration in human readable form. |
| duration_to_s | String |
The duration as a string in milli-seconds. |
| each_exception | Enumerator | Iterate over the chain of exception objects. |
| file_name_and_line(backtrace) | [String,String] |
The file name and line number from the supplied backtrace. |
| level_to_s | String |
Single character upper case log level. |
| metric_only? | true or false |
A metric only event has a metric, but no message or exception. For example human readable text logs do not log metric only events, whereas JSON (machine readable) appenders generally would. |
| payload_to_s | String or nil |
The payload in text form, or nil if no payload present. |
| payload? | true or false |
Whether this log event has a payload. |