Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Ejabberd调试_Logging_Erlang_Ejabberd - Fatal编程技术网

Logging Ejabberd调试

Logging Ejabberd调试,logging,erlang,ejabberd,Logging,Erlang,Ejabberd,我想对我正在开发的Ejabberd模块进行一些调试;然而,当我在Windows上工作时,我最好的选择就是只记录日志 我不能把日志记录下来。我正在使用error\u logger:warning\u msg(“here!”)但是我在日志中看不到这一点 我已经检查了ejabberd.log和error.log 任何关于ejabberd调试或日志记录的想法都是欢迎的。正如我所说,我正在Windows上工作 更新 我更改了代码,现在看起来像这样: start(Host, Opts) ->

我想对我正在开发的Ejabberd模块进行一些调试;然而,当我在Windows上工作时,我最好的选择就是只记录日志

我不能把日志记录下来。我正在使用
error\u logger:warning\u msg(“here!”)
但是我在日志中看不到这一点

我已经检查了
ejabberd.log
error.log

任何关于ejabberd调试或日志记录的想法都是欢迎的。正如我所说,我正在Windows上工作

更新

我更改了代码,现在看起来像这样:

start(Host, Opts) ->
    ?DEBUG("Starting: ~p ~p", [Host, Opts]),
    Proc = gen_mod:get_module_proc(Host, ?MODULE),
    ChildSpec = {
        Proc,
        {?MODULE, start_link, [Host, Opts]},
        transient,
        1000,
        worker,
        [?MODULE]
    },
    supervisor:start_child(ejabberd_sup, ChildSpec).
但我得到了这个错误

2015-09-14 17:01:11.863 [critical] <0.37.0>@gen_mod:start_module:107 Problem starting the module mod_restful for host <<"fernando">> 
 options: [{api,[[{path,[<<"admin">>]},
                  {module,mod_restful_admin},
                  {params,[{key,<<"secret">>},
                           {allowed_commands,[register,unregister]}]}],
                 [{path,[<<"register">>]},
                  {module,mod_restful_register},
                  {params,[{key,<<"secret">>}]}]]}]
 error: undef
[{p1_logger,debug_msg,[mod_restful,80,"Starting: ~p ~p",["fer","fer"]],[]},
 {mod_restful,start,2,
              [{file,"d:/Sites/mod_restful/src/mod_restful.erl"},{line,80}]},
 {gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,99}]},
 {lists,foreach,2,[{file,"lists.erl"},{line,1336}]},
 {ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,72}]},
 {application_master,start_it_old,4,
                     [{file,"application_master.erl"},{line,272}]}]
2015-09-14 17:01:11.863 [critical] <0.37.0>@gen_mod:start_module:112 ejabberd initialization was aborted because a module start failed.
2015-09-14 17:01:11.863[严重]@gen\u mod:start\u模块:107启动主机模块mod\u restful时出现问题
选项:[{api,[[{path,[]},
{模块,mod_restful_admin},
{params,[{key,},
{允许的_命令,[register,unregister]}]},
[{path,[]},
{模块,mod_restful_寄存器},
{params,[{key,}]}]}]
错误:未定义
[{p1_记录器,debug_msg,[mod_restful,80,“开始:~p~p”,[“fer”,“fer”]],[]},
{mod_restful,start,2,
[{file,“d:/Sites/mod_restful/src/mod_restful.erl},{line,80}]},
{gen_mod,start_module,3,[{file,“src/gen_mod.erl”},{line,99}]},
{lists,foreach,2,[{file,“lists.erl”},{line,1336}]},
{ejabberd_app,start,2,[{file,“src/ejabberd_app.erl”},{line,72}]},
{应用程序主控程序,启动旧的,4,
[{file,“application_master.erl”},{line,272}]]
2015-09-14 17:01:11.863[严重]@gen_mod:start_模块:112由于模块启动失败,ejabberd初始化被中止。

我刚刚尝试从本地ejabberd安装,它正确地显示在
ejabberd.log
文件中:

2015-09-14 17:30:20.819 [warning] <0.36.0> here!

它与多个记录器后端(如lager)兼容,并与您在ejabberd中设置的错误级别保持友好关系。

添加后效果良好

-ifndef(LAGER).
-define(LAGER, 1).
-endif.
在包括图书馆之前:

-include("ejabberd.hrl").
-include("logger.hrl").
-include("jlib.hrl").
默认情况下,
调试
不起作用,只需
信息
警告
错误
严重

?DEBUG("Starting: ~p ~p", [Host, Opts]),
?INFO_MSG("Starting: ~p ~p", [Host, Opts]),
?WARNING_MSG("Starting: ~p ~p", [Host, Opts]),
?ERROR_MSG("Starting: ~p ~p", [Host, Opts]),
?CRITICAL_MSG("Starting: ~p ~p", [Host, Opts]),
您必须在模块顶部包含“-include”(“logger.hrl”)”。这只会将宏定义告知ejabberd

您还可以使用“ejabberdctl set_loglevel 4”命令在运行时更改调试级别

日志级别为: 0:没有ejabberd日志
1:关键
2:错误
3:警告
4:信息

5:调试

我无法使
?调试(格式,Args)。
工作。我可以编译,但在启动Ejabberd时,该行出现错误。我还包括了
logger.hrl
。您需要在ejabberd环境中编译,以便使用适当的记录器模块进行设置。
?DEBUG("Starting: ~p ~p", [Host, Opts]),
?INFO_MSG("Starting: ~p ~p", [Host, Opts]),
?WARNING_MSG("Starting: ~p ~p", [Host, Opts]),
?ERROR_MSG("Starting: ~p ~p", [Host, Opts]),
?CRITICAL_MSG("Starting: ~p ~p", [Host, Opts]),