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, []}.
Ejabberd源码解析前奏--调试的更多相关文章
- Ejabberd源码解析前奏--管理
一.ejabberdctl 使用ejabberdctl命令行管理脚本,你可以执行ejabberdctl命令和一些普通的ejabberd命令(后面会详细解说).这意味着你可以在一个本地或远程ejabbe ...
- Ejabberd源码解析前奏--配置
一.基本配置 配置文件将在你第一次启动ejabberd时加载,从该文件中获得的内容将被解析并存储到内部的ejabberd数据库中,以后的配置将从数据库加载,并且任何配置文件里的命令都会被添加到 ...
- Ejabberd源码解析前奏--集群
一.如何工作 一个XMPP域是由一个或多个ejabberd节点伺服的. 这些节点可能运行在通过网络连接的不同机器上. 它们都必须有能力连接到所有其它节点的4369端口, 并且必须有相同的 magic ...
- Ejabberd源码解析前奏--安全
一.防火墙设置 当你配置防火墙的时候,你需要注意以下 TCP 端口: 端口 描述 5222 用于 Jabber/XMPP 客户端连接的标准端口, 纯文本或 STARTTLS. 5223 Jabb ...
- Ejabberd源码解析前奏--概述
一.绪论 Ejabberd是一个用Erlang/OTP写的开源即时通讯服务器,其是跨平台.分布式.容错且基于开放标准的实时通讯系统.Ejabberd是一个功能丰富的XMPP服务器,同时适合小规模 ...
- iOS开发之Alamofire源码解析前奏--NSURLSession全家桶
今天博客的主题不是Alamofire, 而是iOS网络编程中经常使用的NSURLSession.如果你想看权威的NSURLSession的东西,那么就得去苹果官方的开发中心去看了,虽然是英文的,但是结 ...
- Spring5源码解析-前奏:本地构建Spring5源码
构建环境 macOS 10.13.6 JDK1.8 IntelliJ IDEA 2018.3.6 (Ultimate Edition) Spring v5.1.9.RELEASE Gradle 5.5 ...
- Apollo源码解析-搭建调试环境
准备工作 本地运行时环境 JDK :1.8+ MySQL :5.6.5+ Maven :3.6.1 IDE :IntelliJ IDEA Apollo的表结构对timestamp使用了多个defaul ...
- Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码
本文是系列文章<Maven 源码解析:依赖调解是如何实现的?>第二篇,主要介绍如何调试 Maven 源码和插件源码.系列文章总目录参见:https://www.cnblogs.com/xi ...
随机推荐
- Oracle外部表的使用
外部表可以像其它表一样,用select语句作查询.但不能做DML操作,不能建index,不接受约束.这是因为它不是以段的形式存于数据库中,只是以数据字典构造存在,指向一个或多个操作系统文件. 外部表的 ...
- 备份了一个nginx的虚拟主机配置文件报错
[root@localhost vhost]# service nginx restart 停止 nginx:[确定] 正在启动 nginx:nginx: [warn] conflicting ser ...
- 关于FileSystemWatcher监听文件创建
FileSystemWatcher中的Created事件不但可以监听用户创建的文件,当用户删除某个文件时,系统会在再监听的那个盘上的回收站创建一个文件,在回收站创建的文件也会触发Created事件,而 ...
- 微软职位内部推荐-Senior Engineering Lead
微软近期Open的职位: Job Title: Senior Engineering LeadDivision: Microsoft Business SolutionWork Location: S ...
- NOSQL Mongo入门学习笔记 - C++连接Mongodb(三)
OS环境: Centos 7.1 release X86_64 编译环境: G++ 4.8.3 已经成功搭建好了Mongodb,也初步在命令行中的查询与写入数据的基本方法,现在通过C++来连接Mong ...
- 1874 素数和最大 - Wikioi
题目描述 Description 有一天萌萌哒Sevenkplus在跟素数们玩>_<...他玩着玩着突然想到一个问题!就是这样的: 从1到n这n个自然数中,选出一些数使得它们之间两两 ...
- no appropriate service handler found The Connection descriptor used by the client was: localhost:1521:myorcl
参考网址:http://www.2cto.com/database/201205/133542.html http://www.cnblogs.com/kerrycode/p/4244493.html ...
- 团体程序设计天梯赛-练习集L2-003. 月饼
L2-003. 月饼 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不 ...
- <Learning How to Learn>Week One: Focused versus Diffuse Thinking
1-1 Introduction to the focused and diffuse modes (4:40) 两种思考的模式:focused mode以及diffuse mode focused ...
- Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details. ShareSDK 也有这种错误
Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for ...