EMQX—日志与追踪
Posted 敲代码的小小酥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EMQX—日志与追踪相关的知识,希望对你有一定的参考价值。
前言
无论任何服务,我们都有必要研究其日志系统,通过日志系统,我们可以有效了解服务运行情况和服务出现问题后的追踪。下面我们讲解EMQX服务的日志功能。日志的基础功能这里不一一赘述,可在官网或我上传的资料里进行查看,这里只记录EMQX提供的特有或新颖的日志功能。
1.控制日志输出
EMQ X 支持将日志输出到控制台或者日志文件,或者同时使用两者。可在 emqx.conf 中配置 :
log.to 默认值是 both,可选的值为:
off: 完全关闭日志功能
file: 仅将日志输出到文件
console: 仅将日志输出到标准输出(emqx 控制台)
both: 同时将日志输出到文件和标准输出(emqx 控制台)
2.日志级别
EMQ X 的日志分 8 个等级, 由低到高分别为:
debug < info < notice < warning < error < critical < alert < emergency
EMQ X 的默认日志级别为 warning,可在 emqx.conf 中修改:
log.level = warning
此配置将所有 log handler 的配置设置为 warning。
3.日志文件和日志滚动
EMQ X 的默认日志文件目录在 ./log (zip包解压安装) 或者 /var/log/emqx (二进制包安装)。可在emqx.conf 中配置:
log.dir = log
在文件日志启用的情况下 (log.to = file 或 both),日志目录下会有如下几种文件:
emqx.log.N: 以 emqx.log 为前缀的文件为日志文件,包含了 EMQ X 的所有日志消息。比如
emqx.log.1 , emqx.log.2 …
emqx.log.siz 和 emqx.log.idx: 用于记录日志滚动信息的系统文件。
run_erl.log: 以 emqx start 方式后台启动 EMQ X 时,用于记录启动信息的系统文件。
erlang.log.N: 以 erlang.log 为前缀的文件为日志文件,是以 emqx start 方式后台启动 EMQ X 时,控
制台日志的副本文件。比如 erlang.log.1 , erlang.log.2 …
可在 emqx.conf 中修改日志文件的前缀,默认为 emqx.log :
log.file = emqx.log
EMQ X 默认在单日志文件超过 10MB 的情况下,滚动日志文件,最多可有 5 个日志文件:第 1 个日志文件为emqx.log.1,第 2 个为 emqx.log.2,并以此类推。当最后一个日志文件也写满 10MB 的时候,将从序号最小的日
志的文件开始覆盖。文件大小限制和最大日志文件个数可在 emqx.conf 中修改:
log.rotation.size = 10MB log.rotation.count = 5
4.针对日志级别输出日志文件
如果想把大于或等于某个级别的日志写入到单独的文件,可以在 emqx.conf 中配置 log…file : 将 info 及info 以上的日志单独输出到 info.log.N 文件中:
log.info.file = info.log
将 error 及 error 以上的日志单独输出到 error.log.N 文件中
log.error.file = error.log
5. 运行时修改日志级别
在运行时,可以修改EMQX的日志级别,具体的修改方式看课件,这里只需知道有这个日志特性。
6. 日志追踪
EMQ X 支持针对 ClientID 或 Topic 过滤日志并输出到文件。在使用日志追踪功能之前,必须将 primary log level 设置为 debug。所谓的日志追踪就是将日志筛选出来,单独输出到一个文件中。具体的配置看可见。
以上是关于EMQX—日志与追踪的主要内容,如果未能解决你的问题,请参考以下文章