Troubleshooting ejabberd¶
Log Files¶
An ejabberd
node writes three log files:
-
ejabberd.log
: is the ejabberd service log, with the messages reported byejabberd
code -
error.log
: is the file accumulating error messages fromejabberd.log
-
crash.log
: is the Erlang/OTP log, with the crash messages reported by Erlang/OTP using SASL (System Architecture Support Libraries)
The option loglevel
modifies the verbosity of the file ejabberd.log.
The syntax:
loglevel: Level
: The standard form to set a global log level.
The possible Level
are:
-
0
: No ejabberd log at all (not recommended) -
1
: Critical -
2
: Error -
3
: Warning -
4
: Info -
5
: Debug
For example, the default configuration is:
loglevel: 4
By default ejabberd
rotates the log files when they get grown above a
certain size. The exact value is controlled by the
log_rotate_size
top-level option.
However, you can rotate the log files manually. You can either use an external tool for log rotation and the reopen_log API command to reopen the log files, or the rotate_log API command to perform both steps (please refer to section ejabberd Commands).
The log_rotate_count toplevel option defines the number of rotated files to keep by the reopen_log API command. Every such file has a numeric suffix.
Debug Console¶
The Debug Console is an Erlang shell attached to an already running
ejabberd
server. With this Erlang shell, an experienced administrator
can perform complex tasks.
This shell gives complete control over the ejabberd
server, so it is
important to use it with extremely care. There are some simple and safe
examples in the article
Interconnecting Erlang Nodes
To exit the shell, close the window or press the keys: control+c control+c.
Too many db tables¶
When running ejabberd, the log shows this error:
** Too many db tables **
The number of concurrent ETS and Mnesia tables is limited. If this error occurs, it means that you have reached this limit.
For a solution, please read the section about ERL_MAX_ETS_TABLES on the Performance Tuning page.