Skip to content

Commit

Permalink
Merge pull request erlang-lager#335 from basho/issue-329
Browse files Browse the repository at this point in the history
Leverage existing lager_app:get_env wrapper for error_logger_lager_h
  • Loading branch information
jadeallenx committed Mar 29, 2016
2 parents 91e2e9e + 81222ca commit cbe7157
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 50 deletions.
8 changes: 4 additions & 4 deletions src/error_logger_lager_h.erl
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ set_high_water(N) ->
-spec init(any()) -> {ok, #state{}}.
init([HighWaterMark, GlStrategy]) ->
Shaper = #lager_shaper{hwm=HighWaterMark},
Raw = application:get_env(lager, error_logger_format_raw, false),
Raw = lager_app:get_env(lager, error_logger_format_raw, false),
Sink = configured_sink(),
{ok, #state{sink=Sink, shaper=Shaper, groupleader_strategy=GlStrategy, raw=Raw}}.

Expand Down Expand Up @@ -104,23 +104,23 @@ terminate(_Reason, _State) ->


code_change(_OldVsn, {state, Shaper, GLStrategy}, _Extra) ->
Raw = application:get_env(lager, error_logger_format_raw, false),
Raw = lager_app:get_env(lager, error_logger_format_raw, false),
{ok, #state{
sink=configured_sink(),
shaper=Shaper,
groupleader_strategy=GLStrategy,
raw=Raw
}};
code_change(_OldVsn, {state, Sink, Shaper, GLS}, _Extra) ->
Raw = application:get_env(lager, error_logger_format_raw, false),
Raw = lager_app:get_env(lager, error_logger_format_raw, false),
{ok, #state{sink=Sink, shaper=Shaper, groupleader_strategy=GLS, raw=Raw}};
code_change(_OldVsn, State, _Extra) ->
{ok, State}.

%% internal functions

configured_sink() ->
case proplists:get_value(?ERROR_LOGGER_SINK, application:get_env(lager, extra_sinks, [])) of
case proplists:get_value(?ERROR_LOGGER_SINK, lager_app:get_env(lager, extra_sinks, [])) of
undefined -> ?DEFAULT_SINK;
_ -> ?ERROR_LOGGER_SINK
end.
Expand Down
4 changes: 4 additions & 0 deletions src/lager_app.erl
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
start_handler/3,
stop/1]).

%% The `application:get_env/3` compatibility wrapper is useful
%% for other modules
-export([get_env/3]).

-define(FILENAMES, '__lager_file_backend_filenames').
-define(THROTTLE, lager_backend_throttle).
-define(DEFAULT_HANDLER_CONF,
Expand Down
7 changes: 1 addition & 6 deletions src/lager_stdlib.erl
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,7 @@ maybe_utc(Time) ->
Val;
undefined ->
%% Backwards compatible:
case application:get_env(stdlib, utc_log) of
{ok, Val} ->
Val;
undefined ->
false
end
lager_app:get_env(stdlib, utc_log, false)
end,
if
UTC =:= true ->
Expand Down
75 changes: 35 additions & 40 deletions src/lager_sup.erl
Original file line number Diff line number Diff line change
Expand Up @@ -45,45 +45,40 @@ init([]) ->
{lager_handler_watcher_sup, {lager_handler_watcher_sup, start_link, []},
permanent, 5000, supervisor, [lager_handler_watcher_sup]}],

%% check if the crash log is enabled
Crash = case application:get_env(lager, crash_log) of
{ok, undefined} ->
[];
{ok, false} ->
[];
{ok, File} ->
MaxBytes = case application:get_env(lager, crash_log_msg_size) of
{ok, Val} when is_integer(Val) andalso Val > 0 -> Val;
_ -> 65536
end,
RotationSize = case application:get_env(lager, crash_log_size) of
{ok, Val1} when is_integer(Val1) andalso Val1 >= 0 -> Val1;
_ -> 0
end,
RotationCount = case application:get_env(lager, crash_log_count) of
{ok, Val2} when is_integer(Val2) andalso Val2 >=0 -> Val2;
_ -> 0
end,
RotationDate = case application:get_env(lager, crash_log_date) of
{ok, Val3} ->
case lager_util:parse_rotation_date_spec(Val3) of
{ok, Spec} -> Spec;
{error, _} when Val3 == "" -> undefined; %% blank is ok
{error, _} ->
error_logger:error_msg("Invalid date spec for "
"crash log ~p~n", [Val3]),
undefined
end;
_ -> undefined
end,

[{lager_crash_log, {lager_crash_log, start_link, [File, MaxBytes,
RotationSize, RotationDate, RotationCount]},
permanent, 5000, worker, [lager_crash_log]}];
_ ->
[]
end,
CrashLog = decide_crash_log(lager_app:get_env(lager, crash_log, false)),

{ok, {{one_for_one, 10, 60},
Children ++ Crash
}}.
Children ++ CrashLog
}}.

validate_positive({ok, Val}, _Default) when is_integer(Val) andalso Val >= 0 ->
Val;
validate_positive(_Val, Default) ->
Default.

determine_rotation_date({ok, ""}) ->
undefined;
determine_rotation_date({ok, Val3}) ->
case lager_util:parse_rotation_date_spec(Val3) of
{ok, Spec} -> Spec;
{error, _} ->
error_logger:error_msg("Invalid date spec for "
"crash log ~p~n", [Val3]),
undefined
end;
determine_rotation_date(_) ->
undefined.

decide_crash_log(false) ->
[];
decide_crash_log(File) ->
MaxBytes = validate_positive(application:get_env(lager, crash_log_msg_size), 65536),
RotationSize = validate_positive(application:get_env(lager, crash_log_size), 0),
RotationCount = validate_positive(application:get_env(lager, crash_log_count), 0),

RotationDate = determine_rotation_date(application:get_env(lager, crash_log_date)),


[{lager_crash_log, {lager_crash_log, start_link, [File, MaxBytes,
RotationSize, RotationDate, RotationCount]},
permanent, 5000, worker, [lager_crash_log]}].

0 comments on commit cbe7157

Please sign in to comment.