1

when using lager's 'trace' as follows:

lager:trace_file("/var/log/peter/lager_test_a_debug.log",[{module,lager_test_a}],debug),
lager:trace_file("/var/log/peter/lager_test_http_server_debug.log",[{module,lager_test_http_server}],debug),

'lager_test_a' is gen_server module, and it is terminated, the reason is as follows:

terminate(Reason, _State) ->
    io:format("_123:~n\t~p",[Reason]),
    ok.

{badarg,[{ets,update_counter,[40984,input,{2,1}],[]},
         {lager_default_tracer,handle,1,[]},
         {lager_util,check_trace,2,
                     [{file,"src/lager_util.erl"},{line,445}]},
         {lager_util,check_traces,4,
                     [{file,"src/lager_util.erl"},{line,438}]},
         {lager,do_log,9,[{file,"src/lager.erl"},{line,103}]},
         {lager_test_a,handle_info,2,
                       [{file,"src/lager_test_a.erl"},{line,104}]},
         {gen_server,try_dispatch,4,
                     [{file,"gen_server.erl"},{line,593}]},
         {gen_server,handle_msg,5,
                     [{file,"gen_server.erl"},{line,659}]}]}

But I can't find lager_default_tracer.beam and source file. I think that it may be ets's 'table 40984' doesn't exist, and the error happens.

But how to solve the problem?

Chen Yu
  • 3,955
  • 1
  • 24
  • 51
  • The lager_default_tracer.beam file will be in the ebin directory inside of the directory containing all the lager code. Only projects that use erlang.mk or rebar, this would normally be `deps/lager/`. You should be able to find the source file in that directory as well. I can't really provide an answer since I don't know what's in your `lager_test_a` module. – Stratus3D Aug 25 '17 at 17:03
  • The `lager_default_tracer` module is generated and compiled dynamically, see [this answer](https://stackoverflow.com/a/45905409/409228) for details. – Steve Vinoski Aug 27 '17 at 14:58

0 Answers0