我决定在我的 Erlang 项目中设置 lager。我正在使用 erlang.mk,所以我添加了
ERLC_OPTS = +'{parse_transform, lager_transform}'
到我的 Makefile。我可以毫无错误地运行make all
和编译模块。我还可以启动erl
控制台并使用 lager 运行包含模块的应用程序。在控制台会话期间不会生成错误,并且会记录更多消息。似乎一切都很好(这是我第一次使用啤酒)。但是,当我运行 Common Test 时,较大的调用失败:
10:11:17.174 [error] CRASH REPORT Process <0.238.0> with 2 neighbours exited with reason: call to undefined function lager:info("Params: ~p", [[]]) in gen_server:init_it/6 line 328
由于看起来我正在测试的模块已经正确编译,我认为这是一个较大的模块不存在的问题。但是,如果我添加这个:
erlang:display(lager:module_info()),
上面第一个啤酒调用成功,打印啤酒的模块信息。我假设我正在进行的日志记录调用正在利用一些解析转换魔法来工作,而这在我的 Common Test 运行期间不存在。
任何建议都非常感谢!