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

时间:2013-12-05 08:47:58

标签: logging lua nosql redis

我正在为我的Redis DB编写一个简单的Lua脚本,我想使用条件记录,我使用的beacouse日志包含一些字符串连接,如果不是绝对需要,我想为Redis提供额外的计算。我没有在Redis Lua脚本文档中找到任何内容,这可以帮助我解决这个问题。

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

1 个答案:

答案 0 :(得分:2)

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

您可以使用“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的成本可能会高于字符串连接。