ソースを参照

Merge pull request #355 from juise/fix-get-env

Fix get_env bug
pull/360/head
John Daily 9年前
コミット
651e793d9d
3個のファイルの変更36行の追加10行の削除
  1. +3
    -1
      rebar.config
  2. +11
    -9
      src/lager_app.erl
  3. +22
    -0
      test/lager_app_tests.erl

+ 3
- 1
rebar.config ファイルの表示

@ -40,9 +40,12 @@
{eunit_opts, [verbose]}. {eunit_opts, [verbose]}.
{eunit_compile_opts, [ {eunit_compile_opts, [
export_all,
nowarn_untyped_record, nowarn_untyped_record,
nowarn_export_all nowarn_export_all
]}. ]}.
{deps, [ {deps, [
{goldrush, ".*", {git, "git://github.com/DeadZen/goldrush.git", {tag, "0.1.8"}}} {goldrush, ".*", {git, "git://github.com/DeadZen/goldrush.git", {tag, "0.1.8"}}}
]}. ]}.
@ -53,4 +56,3 @@
{cover_enabled, true}. {cover_enabled, true}.
{edoc_opts, [{stylesheet_file, "./priv/edoc.css"}]}. {edoc_opts, [{stylesheet_file, "./priv/edoc.css"}]}.
{eunit_opts, [verbose]}.

+ 11
- 9
src/lager_app.erl ファイルの表示

@ -138,11 +138,10 @@ maybe_install_sink_killer(_Sink, HWM, ReinstallTimer) ->
error_logger:error_msg("Invalid value for 'killer_hwm': ~p or 'killer_reinstall_after': ~p", [HWM, ReinstallTimer]), error_logger:error_msg("Invalid value for 'killer_hwm': ~p or 'killer_reinstall_after': ~p", [HWM, ReinstallTimer]),
throw({error, bad_config}). throw({error, bad_config}).
start_error_logger_handler({ok, false}, _HWM, _Whitelist) ->
-spec start_error_logger_handler(boolean(), pos_integer(), list()) -> list().
start_error_logger_handler(false, _HWM, _Whitelist) ->
[]; [];
start_error_logger_handler(_, HWM, undefined) ->
start_error_logger_handler(ignore_me, HWM, {ok, []});
start_error_logger_handler(_, HWM, {ok, WhiteList}) ->
start_error_logger_handler(true, HWM, WhiteList) ->
GlStrategy = case application:get_env(lager, error_logger_groupleader_strategy) of GlStrategy = case application:get_env(lager, error_logger_groupleader_strategy) of
undefined -> undefined ->
handle; handle;
@ -200,13 +199,16 @@ configure_extra_sinks(Sinks) ->
lists:foreach(fun({Sink, Proplist}) -> configure_sink(Sink, Proplist) end, lists:foreach(fun({Sink, Proplist}) -> configure_sink(Sink, Proplist) end,
Sinks). Sinks).
-spec get_env(atom(), atom()) -> term().
get_env(Application, Key) -> get_env(Application, Key) ->
get_env(Application, Key, undefined). get_env(Application, Key, undefined).
%% R15 doesn't know about application:get_env/3 %% R15 doesn't know about application:get_env/3
-spec get_env(atom(), atom(), term()) -> term().
get_env(Application, Key, Default) -> get_env(Application, Key, Default) ->
get_env_default(application:get_env(Application, Key),
Default).
get_env_default(application:get_env(Application, Key), Default).
-spec get_env_default('undefined' | {'ok', term()}, term()) -> term().
get_env_default(undefined, Default) -> get_env_default(undefined, Default) ->
Default; Default;
get_env_default({ok, Value}, _Default) -> get_env_default({ok, Value}, _Default) ->
@ -235,9 +237,9 @@ boot() ->
lager:update_loglevel_config(?DEFAULT_SINK), lager:update_loglevel_config(?DEFAULT_SINK),
SavedHandlers = start_error_logger_handler( SavedHandlers = start_error_logger_handler(
get_env(lager, error_logger_redirect),
interpret_hwm(get_env(lager, error_logger_hwm)),
get_env(lager, error_logger_whitelist)
get_env(lager, error_logger_redirect, true),
interpret_hwm(get_env(lager, error_logger_hwm, 0)),
get_env(lager, error_logger_whitelist, [])
), ),
SavedHandlers. SavedHandlers.

+ 22
- 0
test/lager_app_tests.erl ファイルの表示

@ -0,0 +1,22 @@
-module(lager_app_tests).
-compile([{parse_transform, lager_transform}]).
-include_lib("eunit/include/eunit.hrl").
get_env_default_test() ->
?assertEqual(<<"Some">>, lager_app:get_env_default(undefined, <<"Some">>)),
?assertEqual(<<"Value">>, lager_app:get_env_default({ok, <<"Value">>}, <<"Some">>)),
ok.
get_env_test() ->
application:set_env(myapp, mykey1, <<"Value">>),
?assertEqual(<<"Some">>, lager_app:get_env(myapp, mykey0, <<"Some">>)),
?assertEqual(<<"Value">>, lager_app:get_env(myapp, mykey1, <<"Some">>)),
?assertEqual(undefined, lager_app:get_env(myapp, mykey0)),
?assertEqual(<<"Value">>, lager_app:get_env(myapp, mykey1)),
ok.

読み込み中…
キャンセル
保存