我在 OpenSuse Linux 15.2 上运行 EJabberd 21.04,并使用带有房间日志记录的 MUC 模块。据我所知,一切正常。房间日志和活动正在写入房间日志。
然而,在 ejabberd.log 和 error.log 中写入了以下几行:
2021-05-14 15:51:23.000 [error] <0.692.0>@mod_muc_log:handle_cast:130 {{badmatch,{error,enoent}},[{mod_muc_log,add_message_to_log,5,[{file,"src/mod_muc_log.erl"},{line,333}]},{mod_muc_log,handle_cast,2,[{file,"src/mod_muc_log.erl"},{line,129}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,637}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,711}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}
2021-05-14 15:51:23.001 [error] <0.692.0>@mod_muc_log:handle_cast:130 {{badmatch,{error,enoent}},[{mod_muc_log,add_message_to_log,5,[{file,"src/mod_muc_log.erl"},{line,333}]},{mod_muc_log,handle_cast,2,[{file,"src/mod_muc_log.erl"},{line,129}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,637}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,711}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}
只要服务器在运行,这些行就会每 3 分钟出现一次,精确到秒。我不知道该怎么回事,希望能得到指导,如何让它们停止。
答案1
查看源代码文件和行号,发现 file:open 因 enoent 而失败,并查看http://erlang.org/doc/man/file.html#open-2
有效
该文件不存在。
我说的是它尝试写入日志文件的路径不存在,或者没有写入权限。