redis 的syslog日志没有打印出来的探索过程

刚接触redis,阅读源码发现有很多打印日志的地方。但是如何打印到日志中,不太清楚,做了一次简单的探索。

首先,在void serverLogRaw中,

    if (server.syslog_enabled) syslog(syslogLevelMap[level], "%s", msg);
搜索代码,发现server.syslog_enabled的值,来自redis.conf的#syslog-enabled yes配置项。

使用gdb跟踪server.syslog_enabled的值,为0,也证明了这个配置当时没有生效。

修改配置后,仍然没有日志,但是gdb确定日志开关已经开启了,

(gdb) p server.syslog_enabled
$1 = 1

然后注意到,并不是所有的日志都无法打印,级别为LOG_NOTICE,2的可以打印,

搜索syslog的日志说明:即,LOG_NOTICE往上,级别越严重。怀疑是日志级别有问题。

syslog函数参数priority取值

priority参数

syslog.conf中对应的level取值

LOG_EMERG

emerg

LOG_ALERT

alert

LOG_CRIT

crit

LOG_ERR

err

LOG_WARNING

warning

LOG_NOTICE

notice

LOG_INFO

info

LOG_DEBUG

debug

 

在server.syslog_enabled定义的附近,发现了日志级别配置redis.conf使用方法。所以,要设置成debug,所有日志就可以打印了。

# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel debug
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值