如何在Redis Lua脚本中检查日志级别

我正在为我的Redis数据库编写一个简单的Lua脚本,我想要使用条件日志记录,因为我使用的日志包含一些字符串连接,如果不是绝对必要,我希望节省Redis的额外计算。我在Redis Lua脚本文档中没有找到任何可以帮助我做到这一点的东西。

有人知道如何在Redis Lua脚本中获取当前日志级别吗?

点赞
用户1114486
用户1114486

这是可能的,但不是非常方便的。

您可以使用“config get loglevel” redis 命令从脚本中获取参数的值。

例如:

EVAL "local tracelvl={debug=0,verbose=1,notice=2,warning=3};
      local trace=tracelvl[redis.call('config','get','loglevel')[2]];
      ...
      if trace>=redis.LOG_NOTICE then redis.log(redis.LOG_NOTICE,'hi there'); end ;
      ...
      if trace>=redis.LOG_WARNING then redis.log(redis.LOG_WARNING,'more important stuff'); end ;
" 0

如果您有一个包含大量跟踪的大型脚本,则可能有用(但是在 Redis 中拥有大型脚本是一个好主意吗?我不认为是这样)。

如果只有一个跟踪,那么额外的 redis.call 成本可能高于字符串拼接。

2013-12-05 09:29:44