diff --git a/include/lager.hrl b/include/lager.hrl index f190d92..b310178 100644 --- a/include/lager.hrl +++ b/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]). diff --git a/test/lager_test_backend.erl b/test/lager_test_backend.erl index 2683a2a..a055c4e 100644 --- a/test/lager_test_backend.erl +++ b/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()]),