Tarantool development patches archive
 help / color / mirror / Atom feed
From: Cyrill Gorcunov via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Alexander Turenko <alexander.turenko@tarantool.org>
Cc: tml <tarantool-patches@dev.tarantool.org>
Subject: Re: [Tarantool-patches] [PATCH] lua/log: accept symbolic logging levels
Date: Thu, 27 May 2021 10:53:32 +0300	[thread overview]
Message-ID: <YK9P/KWvoBWj+jtw@grain> (raw)
In-Reply-To: <20210526220454.twurat7647tcx4be@tkn_work_nb>

On Thu, May 27, 2021 at 01:04:54AM +0300, Alexander Turenko wrote:
> Sorry for the late response.
> 
> Looks nice! LGTM.
> 
> If you'll have a free time, it would be good to add a simple test case:
> just to automatically verify it for regressions in a future.
> 

Thanks! I force pushed an update where a test added (we can extend
it in future).

branch gorcunov/gh-5882-logger-strings
issue https://github.com/tarantool/tarantool/issues/5882
---
From: Cyrill Gorcunov <gorcunov@gmail.com>
Date: Fri, 7 May 2021 13:59:43 +0300
Subject: [PATCH] lua/log: accept symbolic logging levels

Currently `log` module accepts only numeric values of
logging levels. I turn `box.cfg` interface supports
symbolic names (such as 'fatal', 'crit' and etc).

Thus we should support the same in `log` module.

Closes #5882

Reported-by: Alexander Turenko <alexander.turenko@tarantool.org>
Acked-by: Alexander Turenko <alexander.turenko@tarantool.org>
Acked-by: Serge Petrenko <sergepetrenko@tarantool.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
---
 changelogs/unreleased/gh-5882-log-levels.md | 13 ++++++++
 src/lua/log.lua                             |  6 ++++
 test/app-tap/logmod.test.lua                | 36 +++++++++++++++++++++
 3 files changed, 55 insertions(+)
 create mode 100644 changelogs/unreleased/gh-5882-log-levels.md
 create mode 100755 test/app-tap/logmod.test.lua

diff --git a/changelogs/unreleased/gh-5882-log-levels.md b/changelogs/unreleased/gh-5882-log-levels.md
new file mode 100644
index 000000000..08f9595be
--- /dev/null
+++ b/changelogs/unreleased/gh-5882-log-levels.md
@@ -0,0 +1,13 @@
+## feature/lua/log
+
+ * Implemented support of symbolic log levels representation
+   in `log` module (gh-5882). Now it is possible to specify
+   levels the same way as in `box.cfg{}` call. For example
+   instead of
+   ``` Lua
+   require('log').cfg{level = 6}
+   ```
+   One can use
+   ``` Lua
+   require('log').cfg{level = 'verbose'}
+   ```
diff --git a/src/lua/log.lua b/src/lua/log.lua
index 62ea61f2d..788560722 100644
--- a/src/lua/log.lua
+++ b/src/lua/log.lua
@@ -499,6 +499,12 @@ local function load_cfg(self, cfg)
             local m = "log.cfg: \'%s\' %s"
             error(m:format('level', msg))
         end
+        -- Convert level to a numeric value since
+        -- low level api operates with numbers only.
+        if type(cfg.level) == 'string' then
+            assert(log_level_keys[cfg.level] ~= nil)
+            cfg.level = log_level_keys[cfg.level]
+        end
     end
 
     if cfg.nonblock ~= nil then
diff --git a/test/app-tap/logmod.test.lua b/test/app-tap/logmod.test.lua
new file mode 100755
index 000000000..68508ce5b
--- /dev/null
+++ b/test/app-tap/logmod.test.lua
@@ -0,0 +1,36 @@
+#!/usr/bin/env tarantool
+
+local test = require('tap').test('log')
+local log = require('log')
+
+test:plan(8)
+
+log.log_format('plain')
+
+-- Test symbolic names for loglevels
+_, err = pcall(log.cfg, {level='fatal'})
+test:ok(err == nil and log.cfg.level == 0, 'both got fatal')
+
+_, err = pcall(log.cfg, {level='syserror'})
+test:ok(err == nil and log.cfg.level == 1, 'got syserror')
+
+_, err = pcall(log.cfg, {level='error'})
+test:ok(err == nil and log.cfg.level == 2, 'got error')
+
+_, err = pcall(log.cfg, {level='crit'})
+test:ok(err == nil and log.cfg.level == 3, 'got crit')
+
+_, err = pcall(log.cfg, {level='warn'})
+test:ok(err == nil and log.cfg.level == 4, 'got warn')
+
+_, err = pcall(log.cfg, {level='info'})
+test:ok(err == nil and log.cfg.level == 5, 'got info')
+
+_, err = pcall(log.cfg, {level='verbose'})
+test:ok(err == nil and log.cfg.level == 6, 'got verbose')
+
+_, err = pcall(log.cfg, {level='debug'})
+test:ok(err == nil and log.cfg.level == 7, 'got debug')
+
+test:check()
+os.exit()
-- 
2.31.1


  reply	other threads:[~2021-05-27  7:53 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-07 11:13 Cyrill Gorcunov via Tarantool-patches
2021-05-07 11:17 ` Cyrill Gorcunov via Tarantool-patches
2021-05-26 11:04 ` Serge Petrenko via Tarantool-patches
2021-05-26 22:04 ` Alexander Turenko via Tarantool-patches
2021-05-27  7:53   ` Cyrill Gorcunov via Tarantool-patches [this message]
2021-05-27  9:04     ` Alexander Turenko via Tarantool-patches
2021-05-27 10:17       ` Cyrill Gorcunov via Tarantool-patches
2021-06-01 12:25 ` Kirill Yukhin via Tarantool-patches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YK9P/KWvoBWj+jtw@grain \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=alexander.turenko@tarantool.org \
    --cc=gorcunov@gmail.com \
    --subject='Re: [Tarantool-patches] [PATCH] lua/log: accept symbolic logging levels' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox