rewrite from lager
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

57 行
1.5 KiB

-module(rumMsg).
-include("eRum.hrl").
-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]).
-opaque rumMsg() :: #rumMsg{}.
-export_type([rumMsg/0]).
%% create with provided timestamp, handy for testing mostly
-spec new(list(), erlang:timestamp(), rumLevel(), [tuple()], list()) -> rumMsg().
new(Msg, Timestamp, Severity, Metadata, Destinations) ->
{Date, Time} = rumUtil:format_time(rumUtil:maybe_utc(rumUtil:localtime_ms(Timestamp))),
#rumMsg{message = Msg, datetime = {Date, Time}, timestamp = Timestamp, severity = Severity,
metadata = Metadata, destinations = Destinations}.
-spec new(list(), rumLevel(), [tuple()], list()) -> rumMsg().
new(Msg, Severity, Metadata, Destinations) ->
Now = os:timestamp(),
new(Msg, Now, Severity, Metadata, Destinations).
-spec message(rumMsg()) -> list().
message(Msg) ->
Msg#rumMsg.message.
-spec timestamp(rumMsg()) -> erlang:timestamp().
timestamp(Msg) ->
Msg#rumMsg.timestamp.
-spec datetime(rumMsg()) -> {string(), string()}.
datetime(Msg) ->
Msg#rumMsg.datetime.
-spec severity(rumMsg()) -> rumLevel().
severity(Msg) ->
Msg#rumMsg.severity.
-spec severity_as_int(rumMsg()) -> rumLevelNum().
severity_as_int(Msg) ->
rumUtil:levelToNum(Msg#rumMsg.severity).
-spec metadata(rumMsg()) -> [tuple()].
metadata(Msg) ->
Msg#rumMsg.metadata.
-spec destinations(rumMsg()) -> list().
destinations(Msg) ->
Msg#rumMsg.destinations.