- -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.
-
-
|