| -module(lager_msg). |
| |
| -export([new/4, new/5]). |
| -export([message/1]). |
| -export([timestamp/1]). |
| -export([datetime/1]). |
| -export([severity/1]). |
| -export([severity_as_int/1]). |
| -export([metadata/1]). |
| -export([destinations/1]). |
| |
| -record(lager_msg,{ |
| destinations :: list(), |
| metadata :: [tuple()], |
| severity :: lager:log_level(), |
| datetime :: {string(), string()}, |
| timestamp :: erlang:timestamp(), |
| message :: list() |
| }). |
| |
| -opaque lager_msg() :: #lager_msg{}. |
| -export_type([lager_msg/0]). |
| |
| %% create with provided timestamp, handy for testing mostly |
| -spec new(list(), erlang:timestamp(), lager:log_level(), [tuple()], list()) -> lager_msg(). |
| new(Msg, Timestamp, Severity, Metadata, Destinations) -> |
| {Date, Time} = lager_util:format_time(lager_util:maybe_utc(lager_util:localtime_ms(Timestamp))), |
| #lager_msg{message=Msg, datetime={Date, Time}, timestamp=Timestamp, severity=Severity, |
| metadata=Metadata, destinations=Destinations}. |
| |
| -spec new(list(), lager:log_level(), [tuple()], list()) -> lager_msg(). |
| new(Msg, Severity, Metadata, Destinations) -> |
| Now = os:timestamp(), |
| new(Msg, Now, Severity, Metadata, Destinations). |
| |
| -spec message(lager_msg()) -> list(). |
| message(Msg) -> |
| Msg#lager_msg.message. |
| |
| -spec timestamp(lager_msg()) -> erlang:timestamp(). |
| timestamp(Msg) -> |
| Msg#lager_msg.timestamp. |
| |
| -spec datetime(lager_msg()) -> {string(), string()}. |
| datetime(Msg) -> |
| Msg#lager_msg.datetime. |
| |
| -spec severity(lager_msg()) -> lager:log_level(). |
| severity(Msg) -> |
| Msg#lager_msg.severity. |
| |
| -spec severity_as_int(lager_msg()) -> lager:log_level_number(). |
| severity_as_int(Msg) -> |
| lager_util:level_to_num(Msg#lager_msg.severity). |
| |
| -spec metadata(lager_msg()) -> [tuple()]. |
| metadata(Msg) -> |
| Msg#lager_msg.metadata. |
| |
| -spec destinations(lager_msg()) -> list(). |
| destinations(Msg) -> |
| Msg#lager_msg.destinations. |
| |
| |