@ -353,6 +353,87 @@ lager_test_() ->
ok
end
} ,
{ " tracing works with custom attributes and event stream processing " ,
fun ( ) - >
lager : set_loglevel ( ? MODULE , error ) ,
? assertEqual ( { ? ERROR bor ? CRITICAL bor ? ALERT bor ? EMERGENCY , [ ] } , lager_config : get ( loglevel ) ) ,
lager_config : set ( loglevel , { element ( 2 , lager_util : config_to_mask ( error ) ) , [ ] } ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
? assertEqual ( 0 , count ( ) ) ,
lager : trace ( ? MODULE , [ { requestid , '>' , 5 } , { requestid , '<' , 7 } , { foo , bar } ] , debug ) ,
lager : info ( [ { requestid , 5 } , { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 6 } , { foo , bar } ] , " hello world " ) ,
? assertEqual ( 1 , count ( ) ) ,
lager : clear_all_traces ( ) ,
lager : trace ( ? MODULE , [ { requestid , '>' , 8 } , { foo , bar } ] ) ,
lager : info ( [ { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
lager : info ( [ { requestid , 7 } ] , " hello world " ) ,
lager : info ( [ { requestid , 8 } ] , " hello world " ) ,
lager : info ( [ { requestid , 9 } , { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 10 } ] , " hello world " ) ,
? assertEqual ( 2 , count ( ) ) ,
lager : trace ( ? MODULE , [ { requestid , '>' , 8 } ] ) ,
lager : info ( [ { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
lager : info ( [ { requestid , 7 } ] , " hello world " ) ,
lager : info ( [ { requestid , 8 } ] , " hello world " ) ,
lager : info ( [ { requestid , 9 } , { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 10 } ] , " hello world " ) ,
? assertEqual ( 4 , count ( ) ) ,
lager : trace ( ? MODULE , [ { foo , '=' , bar } ] ) ,
lager : info ( [ { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
lager : info ( [ { requestid , 7 } ] , " hello world " ) ,
lager : info ( [ { requestid , 8 } ] , " hello world " ) ,
lager : info ( [ { requestid , 9 } , { foo , bar } ] , " hello world " ) ,
lager : info ( [ { requestid , 10 } ] , " hello world " ) ,
? assertEqual ( 7 , count ( ) ) ,
lager : clear_all_traces ( ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
? assertEqual ( 7 , count ( ) ) ,
ok
end
} ,
{ " tracing custom attributes works with event stream processing statistics and reductions " ,
fun ( ) - >
lager : set_loglevel ( ? MODULE , error ) ,
? assertEqual ( { ? ERROR bor ? CRITICAL bor ? ALERT bor ? EMERGENCY , [ ] } , lager_config : get ( loglevel ) ) ,
lager_config : set ( loglevel , { element ( 2 , lager_util : config_to_mask ( error ) ) , [ ] } ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
? assertEqual ( 0 , count ( ) ) ,
lager : trace ( ? MODULE , [ { beta , '*' } ] ) ,
lager : trace ( ? MODULE , [ { meta , " data " } ] ) ,
lager : info ( [ { meta , " data " } ] , " hello world " ) ,
lager : info ( [ { beta , 2 } ] , " hello world " ) ,
lager : info ( [ { beta , 2 . 1 } , { foo , bar } ] , " hello world " ) ,
lager : info ( [ { meta , < < " data " > > } ] , " hello world " ) ,
? assertEqual ( 8 , ? DEFAULT_TRACER : info ( input ) ) ,
? assertEqual ( 6 , ? DEFAULT_TRACER : info ( output ) ) ,
? assertEqual ( 2 , ? DEFAULT_TRACER : info ( filter ) ) ,
lager : clear_all_traces ( ) ,
lager : trace ( ? MODULE , [ { meta , " data " } ] ) ,
lager : trace ( ? MODULE , [ { beta , '>' , 2 } , { beta , '<' , 2 . 12 } ] ) ,
lager : info ( [ { meta , " data " } ] , " hello world " ) ,
lager : info ( [ { beta , 2 } ] , " hello world " ) ,
lager : info ( [ { beta , 2 . 1 } , { foo , bar } ] , " hello world " ) ,
lager : info ( [ { meta , < < " data " > > } ] , " hello world " ) ,
? assertEqual ( 8 , ? DEFAULT_TRACER : info ( input ) ) ,
? assertEqual ( 4 , ? DEFAULT_TRACER : info ( output ) ) ,
? assertEqual ( 4 , ? DEFAULT_TRACER : info ( filter ) ) ,
lager : clear_all_traces ( ) ,
lager : trace_console ( [ { beta , '>' , 2 } , { meta , " data " } ] ) ,
lager : trace_console ( [ { beta , '>' , 2 } , { beta , '<' , 2 . 12 } ] ) ,
Reduced = { all , [ { any , [ { beta , '<' , 2 . 12 } , { meta , '=' , " data " } ] } ,
{ beta , '>' , 2 } ] } ,
? assertEqual ( Reduced , ? DEFAULT_TRACER : info ( 'query' ) ) ,
lager : clear_all_traces ( ) ,
lager : info ( [ { requestid , 6 } ] , " hello world " ) ,
? assertEqual ( 5 , count ( ) ) ,
ok
end
} ,
{ " tracing honors loglevel " ,
fun ( ) - >
lager : set_loglevel ( ? MODULE , error ) ,
@ -1073,10 +1154,11 @@ async_threshold_test_() ->
? assertEqual ( true , lager_config : get ( async ) ) ,
% % put a ton of things in the queue
Workers = [ spawn_monitor ( fun ( ) - > [ lager : info ( " hello world " ) | | _ < - lists : seq ( 1 , 1000 ) ] end ) | | _ < - lists : seq ( 1 , 10 ) ] ,
Workers = [ spawn_monitor ( fun ( ) - > [ lager : info ( " hello world " ) | | _ < - lists : seq ( 1 , 1000 ) ] end ) | | _ < - lists : seq ( 1 , 15 ) ] ,
% % serialize on mailbox
_ = gen_event : which_handlers ( lager_event ) ,
timer : sleep ( 500 ) ,
% % there should be a ton of outstanding messages now , so async is false
? assertEqual ( false , lager_config : get ( async ) ) ,
% % wait for all the workers to return , meaning that all the messages have been logged ( since we ' re in sync mode )