瀏覽代碼

Merge pull request #419 from tsloughter/macros

support logging with macros per level
pull/429/head
Andrew Thompson 7 年之前
committed by GitHub
父節點
當前提交
a1d44f3ba2
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: 4AEE18F83AFDEB23
共有 2 個檔案被更改,包括 65 行新增0 行删除
  1. +45
    -0
      include/lager.hrl
  2. +20
    -0
      test/lager_test_backend.erl

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

@ -20,6 +20,51 @@
-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(lager_log(Severity, Format, Args, Safety),
?lager_log(?DEFAULT_SINK, Severity, ?METADATA(lager:md()), Format, Args,
?DEFAULT_TRUNCATION, Safety)).
-define(lager_log(Severity, Metadata, Format, Args, Safety),
?lager_log(?DEFAULT_SINK, Severity, ?METADATA(Metadata++lager:md()), Format, Args,
?DEFAULT_TRUNCATION, Safety)).
-define(lager_log(Sink, Severity, Metadata, Format, Args, Size, Safety),
lager:dispatch_log(Sink, Severity, Metadata, Format, Args, Size, Safety)).
-define(lager_debug(Format, Args), ?lager_log(debug, Format, Args, safe)).
-define(lager_debug(Metadata, Format, Args), ?lager_log(debug, Metadata, Format, Args, safe)).
-define(lager_info(Format, Args), ?lager_log(info, Format, Args, safe)).
-define(lager_info(Metadata, Format, Args), ?lager_log(info, Metadata, Format, Args, safe)).
-define(lager_notice(Format, Args), ?lager_log(notice, Format, Args, safe)).
-define(lager_notice(Metadata, Format, Args), ?lager_log(notice, Metadata, Format, Args, safe)).
-define(lager_warning(Format, Args), ?lager_log(warning, Format, Args, safe)).
-define(lager_warning(Metadata, Format, Args), ?lager_log(warning, Metadata, Format, Args, safe)).
-define(lager_error(Format, Args), ?lager_log(error, Format, Args, safe)).
-define(lager_error(Metadata, Format, Args), ?lager_log(error, Metadata, Format, Args, safe)).
-define(lager_critical(Format, Args), ?lager_log(critical, Format, Args, safe)).
-define(lager_critical(Metadata, Format, Args), ?lager_log(critical, Metadata, Format, Args, safe)).
-define(lager_alert(Format, Args), ?lager_log(alert, Format, Args, safe)).
-define(lager_alert(Metadata, Format, Args), ?lager_log(alert, Metadata, Format, Args, safe)).
-define(lager_emergency(Format, Args), ?lager_log(emergency, Format, Args, safe)).
-define(lager_emergency(Metadata, Format, Args), ?lager_log(emergency, Metadata, Format, Args, safe)).
-define(lager_none(Format, Args), ?lager_log(none, Format, Args, safe)).
-define(lager_none(Metadata, Format, Args), ?lager_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() ->
?lager_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() ->
?lager_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…
取消
儲存