瀏覽代碼

support logging with macros per level

pull/419/head
Tristan Sloughter 7 年之前
父節點
當前提交
4e3abfa204
共有 2 個檔案被更改,包括 62 行新增0 行删除
  1. +42
    -0
      include/lager.hrl
  2. +20
    -0
      test/lager_test_backend.erl

+ 42
- 0
include/lager.hrl 查看文件

@ -20,6 +20,48 @@
-define(DEFAULT_SINK, lager_event).
-define(ERROR_LOGGER_SINK, error_logger_lager_event).
-define(METADATA(Extras), [{severity, info},
{pid, self()},
{node, node()},
{module, ?MODULE},
{function, ?FUNCTION_NAME},
{function_arity, ?FUNCTION_ARITY},
{file, ?FILE},
{line, ?LINE} | Extras]).
-define(log(Level, Format, Args, Safety),
lager:dispatch_log(?DEFAULT_SINK, Level, ?METADATA([]), Format, Args,
?DEFAULT_TRUNCATION, Safety)).
-define(log(Level, Metadata, Format, Args, Safety),
lager:dispatch_log(?DEFAULT_SINK, Level, ?METADATA(Metadata), Format, Args,
?DEFAULT_TRUNCATION, Safety)).
-define(debug(Format, Args), ?log(debug, Format, Args, safe)).
-define(debug(Metadata, Format, Args), ?log(debug, Metadata, Format, Args, safe)).
-define(info(Format, Args), ?log(info, Format, Args, safe)).
-define(info(Metadata, Format, Args), ?log(info, Metadata, Format, Args, safe)).
-define(notice(Format, Args), ?log(notice, Format, Args, safe)).
-define(notice(Metadata, Format, Args), ?log(notice, Metadata, Format, Args, safe)).
-define(warning(Format, Args), ?log(warning, Format, Args, safe)).
-define(warning(Metadata, Format, Args), ?log(warning, Metadata, Format, Args, safe)).
-define(error(Format, Args), ?log(error, Format, Args, safe)).
-define(error(Metadata, Format, Args), ?log(error, Metadata, Format, Args, safe)).
-define(critical(Format, Args), ?log(critical, Format, Args, safe)).
-define(critical(Metadata, Format, Args), ?log(critical, Metadata, Format, Args, safe)).
-define(alert(Format, Args), ?log(alert, Format, Args, safe)).
-define(alert(Metadata, Format, Args), ?log(alert, Metadata, Format, Args, safe)).
-define(emergency(Format, Args), ?log(emergency, Format, Args, safe)).
-define(emergency(Metadata, Format, Args), ?log(emergency, Metadata, Format, Args, safe)).
-define(none(Format, Args), ?log(none, Format, Args, safe)).
-define(none(Metadata, Format, Args), ?log(none, Metadata, Format, Args, safe)).
-define(LEVELS,
[debug, info, notice, warning, error, critical, alert, emergency, none]).

+ 20
- 0
test/lager_test_backend.erl 查看文件

@ -188,6 +188,16 @@ lager_test_() ->
ok
end
},
{"logging with macro works",
fun() ->
?warning("test message", []),
?assertEqual(1, count()),
{Level, _Time, Message, _Metadata} = pop(),
?assertMatch(Level, lager_util:level_to_num(warning)),
?assertEqual("test message", Message),
ok
end
},
{"unsafe logging works",
fun() ->
lager:warning_unsafe("test message"),
@ -208,6 +218,16 @@ lager_test_() ->
ok
end
},
{"logging with macro and arguments works",
fun() ->
?warning("test message ~p", [self()]),
?assertEqual(1, count()),
{Level, _Time, Message,_Metadata} = pop(),
?assertMatch(Level, lager_util:level_to_num(warning)),
?assertEqual(lists:flatten(io_lib:format("test message ~p", [self()])), lists:flatten(Message)),
ok
end
},
{"unsafe logging with args works",
fun() ->
lager:warning_unsafe("test message ~p", [self()]),

Loading…
取消
儲存