瀏覽代碼

Merge branch 'master' of https://github.com/MaximMinin/lager into intg

pull/277/head
Mark Allen 10 年之前
父節點
當前提交
d06a8f3017
共有 2 個檔案被更改,包括 20 行新增5 行删除
  1. +6
    -5
      src/lager.erl
  2. +14
    -0
      src/lager_file_backend.erl

+ 6
- 5
src/lager.erl 查看文件

@ -189,21 +189,22 @@ trace_file(File, Filter, Options) when is_list(Options) ->
trace_file(File, Filter, debug, Options). trace_file(File, Filter, debug, Options).
trace_file(File, Filter, Level, Options) -> trace_file(File, Filter, Level, Options) ->
case validate_trace_filters(Filter, Level, {lager_file_backend, File}) of
FileName = lager_util:expand_path(File),
case validate_trace_filters(Filter, Level, {lager_file_backend, FileName}) of
{Sink, {ok, Trace}} -> {Sink, {ok, Trace}} ->
Handlers = lager_config:global_get(handlers, []), Handlers = lager_config:global_get(handlers, []),
%% check if this file backend is already installed %% check if this file backend is already installed
Res = case lists:keyfind({lager_file_backend, File}, 1, Handlers) of
Res = case lists:keyfind({lager_file_backend, FileName}, 1, Handlers) of
false -> false ->
%% install the handler %% install the handler
LogFileConfig = LogFileConfig =
lists:keystore(level, 1, lists:keystore(level, 1,
lists:keystore(file, 1, lists:keystore(file, 1,
Options, Options,
{file, File}),
{file, FileName}),
{level, none}), {level, none}),
HandlerInfo = HandlerInfo =
lager_app:start_handler(Sink, {lager_file_backend, File},
lager_app:start_handler(Sink, {lager_file_backend, FileName},
LogFileConfig), LogFileConfig),
lager_config:global_set(handlers, [HandlerInfo|Handlers]), lager_config:global_set(handlers, [HandlerInfo|Handlers]),
{ok, installed}; {ok, installed};
@ -216,7 +217,7 @@ trace_file(File, Filter, Level, Options) ->
{ok, _} -> {ok, _} ->
%% XXX Double-check this logic for {ok, exists} %% XXX Double-check this logic for {ok, exists}
add_trace_to_loglevel_config(Trace, Sink), add_trace_to_loglevel_config(Trace, Sink),
{ok, {{lager_file_backend, File}, Filter, Level}};
{ok, {{lager_file_backend, FileName}, Filter, Level}};
{error, _} = E -> {error, _} = E ->
E E
end; end;

+ 14
- 0
src/lager_file_backend.erl 查看文件

@ -708,6 +708,20 @@ filesystem_test_() ->
?assertMatch([_, _, "[error]", _, "Test message\n"], re:split(Bin3, " ", [{return, list}, {parts, 5}])) ?assertMatch([_, _, "[error]", _, "Test message\n"], re:split(Bin3, " ", [{return, list}, {parts, 5}]))
end end
}, },
{"tracing to a dedicated file should work even if root_log is set",
fun() ->
{ok, P} = file:get_cwd(),
file:delete(P ++ "/test_root_log/foo.log"),
application:set_env(lager, log_root, P++"/test_root_log"),
{ok, _} = lager:trace_file("foo.log", [{module, ?MODULE}]),
lager:error("Test message"),
%% not elegible for trace
lager:log(error, self(), "Test message"),
{ok, Bin3} = file:read_file(P++"/test_root_log/foo.log"),
application:unset_env(lager, log_root),
?assertMatch([_, _, "[error]", _, "Test message\n"], re:split(Bin3, " ", [{return, list}, {parts, 5}]))
end
},
{"tracing with options should work", {"tracing with options should work",
fun() -> fun() ->
file:delete("foo.log"), file:delete("foo.log"),

Loading…
取消
儲存