我知道这个问题提出了几次,但我还没有找到解决方案。我不能使用记录器 已下载&使用https://github.com/processone/ejabberd.git中的代码编译eJabrred 我的代码:
-module(mod_hello).
-behavior(gen_mod).
-include("ejabberd.hrl").
-include("lager.hrl").
-include("jlib.hrl").
export([
start/2,
stop/1
]).
start(_Host, _Opt) ->
?DEBUG("Loaded mode_hello", []).
stop(_Host) ->
ok.
错误:
13:15:27.670 [critical] Problem starting the module mod_hello for host <<"localhost">>
options: []
error: undef
[{p1_logger,info_msg,
[mod_hello,16,"Loading module 'mod_hello' ",[]],
[]},
{gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,82}]},
{lists,foreach,2,[{file,"lists.erl"},{line,1336}]},
{ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,67}]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},{line,272}]}]
13:15:27.671 [critical] ejabberd initialization was aborted because a module start failed.
也试图反复:
./rebar get-deps
./rebar compile
cp -R deps/* /lib/ejabberd/include/
但有相同的错误。
当我正在尝试编译&amp;运行mod_echo一切正常,但是当我用msg_info添加一个新行时,我得到了与我的mode_hello相同的错误。 任何想法
答案 0 :(得分:1)
您不需要包含lager,但需要包含:logger.hrl。
答案 1 :(得分:1)
不确定您使用的是哪个版本的ejabberd以及如何构建它,但似乎您缺少p1_logger代码。 ejabberd安装程序包它以及从源代码构建时,代码会自动从该存储库中提取并构建:https://github.com/processone/p1_logger
您的安装似乎存在问题。