Ejabberd源码解析前奏--调试

一、日志文件

    一个ejabberd节点写两个日志文件:
    ejabberd.log

ejabberd 服务日志, 由 ejabberd 节点汇报的消息
erlang.log Erlang/OTP 系统日志, 由 Erlang/OTP 使用 SASL (系统架构支持库) 汇报的消息
选项 loglevel 修改文件 ejabberd.log 的详细程度. 语法是:
{loglevel, Level}.

    可能的 Level 有:
    0

    没有ejabberd日志 (不推荐)
1     Critical
2
     Error
3     Warning
4     Info
5     Debug

    例如, 缺省配置为:
        {loglevel, 4}.

    日志文件持续增长, 所以推荐定期rotate. 为了rotate日志文件, 重命名这个文件然后重新打开它们. ejabberdctl命令reopen-log重新打开日志文件, 如果你不重命名旧文件的话,它也会自动重命名旧文件。

二、调试控制台

    调试控制台是连接到一个已运行的 ejabberd 服务器的 Erlang shell. 使用这个 Erlang shell, 一个有经验的管理员可以执行复杂的任务.

    这个 shell 给予对ejabberd 服务器的完全控制, 所以使用它要非常小心. 在文章 Erlang节点的互连 里有一些简单和安全的例子

    要退出这个shell, 关闭窗口或键入: control+c control+c.

三、Watchdog警告

    ejabberd包含了一个看门狗 watchdog 机制,当找出和内存使用有关的问题时,对开发者可能有用. 如果ejabberd服务器的一个进程消耗了超过配置阀值的内存, 一个消息将被发送到ejabberd配置文件中选项 watchdog_admins 定义的 XMPP 帐号.

    语法是:

        {watchdog_admins, [JID, ...]}.

    消耗的内存以word衡量: 一个word在32位系统上是4字节bytes, 在64位系统上是8字节bytes. 这个阀值缺省是 1000000 words. 这个值可以用选项 watchdog_large_heap来配置, 或在一个会话中使用watchdog警报机器人.

    语法是:

        {watchdog_large_heap, Number}.

    示例配置:
        {watchdog_admins, ["admin2@localhost", "admin2@example.org"]}. 
        {watchdog_large_heap, 30000000}.

    要移除watchdog管理员, 在选项里移除. 为了移除所有watchdog管理员, 设置该选项为空列表:
        {watchdog_admins, []}.

 

posted on 2015-06-23 17:31  神奇的旋风  阅读(341)  评论(0编辑  收藏  举报

导航