@ -26,7 +26,7 @@
trace / 2 , trace / 3 , trace_file / 2 , trace_file / 3 , trace_console / 1 , trace_console / 2 ,
clear_all_traces / 0 , stop_trace / 1 , status / 0 ,
get_loglevel / 1 , set_loglevel / 2 , set_loglevel / 3 , get_loglevels / 0 ,
minimum_loglevel / 1 , posix_error / 1 ,
update_loglevel_config / 0 , posix_error / 1 ,
safe_format / 3 , safe_format_chop / 3 , dispatch_log / 5 , pr / 2 ] ) .
- type log_level ( ) : : debug | info | notice | warning | error | critical | alert | emergency .
@ -121,14 +121,7 @@ trace_file(File, Filter, Level) ->
end ,
case Res of
{ ok , _ } - >
% % install the trace .
{ MinLevel , Traces } = lager_config : get ( loglevel ) ,
case lists : member ( Trace , Traces ) of
false - >
lager_config : set ( loglevel , { MinLevel , [ Trace | Traces ] } ) ;
_ - >
ok
end ,
add_trace_to_loglevel_config ( Trace ) ,
{ ok , Trace } ;
{ error , _ } = E - >
E
@ -150,12 +143,7 @@ trace(Backend, Filter, Level) ->
Trace0 = { Filter , Level , Backend } ,
case lager_util : validate_trace ( Trace0 ) of
{ ok , Trace } - >
{ MinLevel , Traces } = lager_config : get ( loglevel ) ,
case lists : member ( Trace , Traces ) of
false - >
lager_config : set ( loglevel , { MinLevel , [ Trace | Traces ] } ) ;
_ - > ok
end ,
add_trace_to_loglevel_config ( Trace ) ,
{ ok , Trace } ;
Error - >
Error
@ -225,20 +213,14 @@ status() ->
% % @ doc Set the loglevel for a particular backend .
set_loglevel ( Handler , Level ) when is_atom ( Level ) - >
Reply = gen_event : call ( lager_event , Handler , { set_loglevel , Level } , infinity ) ,
% % recalculate min log level
{ _ , Traces } = lager_config : get ( loglevel ) ,
MinLog = minimum_loglevel ( get_loglevels ( ) ) ,
lager_config : set ( loglevel , { MinLog , Traces } ) ,
update_loglevel_config ( ) ,
Reply .
% % @ doc Set the loglevel for a particular backend that has multiple identifiers
% % ( eg . the file backend ) .
set_loglevel ( Handler , Ident , Level ) when is_atom ( Level ) - >
Reply = gen_event : call ( lager_event , { Handler , Ident } , { set_loglevel , Level } , infinity ) ,
% % recalculate min log level
{ _ , Traces } = lager_config : get ( loglevel ) ,
MinLog = minimum_loglevel ( get_loglevels ( ) ) ,
lager_config : set ( loglevel , { MinLog , Traces } ) ,
update_loglevel_config ( ) ,
Reply .
% % @ doc Get the loglevel for a particular backend . In the case that the backend
@ -270,6 +252,22 @@ get_loglevels() ->
[ gen_event : call ( lager_event , Handler , get_loglevel , infinity ) | |
Handler < - gen_event : which_handlers ( lager_event ) ] .
% % @ private
add_trace_to_loglevel_config ( Trace ) - >
{ MinLevel , Traces } = lager_config : get ( loglevel ) ,
case lists : member ( Trace , Traces ) of
false - >
lager_config : set ( loglevel , { MinLevel , [ Trace | Traces ] } ) ;
_ - >
ok
end .
% % @ doc recalculate min log level
update_loglevel_config ( ) - >
{ _ , Traces } = lager_config : get ( loglevel ) ,
MinLog = minimum_loglevel ( get_loglevels ( ) ) ,
lager_config : set ( loglevel , { MinLog , Traces } ) .
% % @ private
minimum_loglevel ( Levels ) - >
lists : foldl ( fun ( { mask , Mask } , Acc ) - >