Skip to content

Commit 9e0776e

Browse files
Oleg Chaplashkinylobankov
Oleg Chaplashkin
authored andcommitted
Improve log submodule of luatest
We improved `luatest.log` module for convenient logging and refactored it: local t = require('luatest') t.log('Info log: %s', 'foo') t.log.warn('Warn log from %s', 'foo') The following functions of the `luatest.log` module are presented: t.log.error(msg[, args]) t.log.warn(msg[, args]) t.log.info(msg[, args]) t.log.verbose(msg[, args]) t.log.debug(msg[, args]) t.log() - syntax sugar for t.log.info(...) Follows #326
1 parent f8a1c10 commit 9e0776e

File tree

3 files changed

+51
-13
lines changed

3 files changed

+51
-13
lines changed

luatest/init.lua

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ luatest.ReplicaSet = require('luatest.replica_set')
3333
local Group = require('luatest.group')
3434
local hooks = require('luatest.hooks')
3535
local parametrizer = require('luatest.parametrizer')
36-
local utils = require('luatest.utils')
3736

3837
--- Add syntax sugar for logging.
3938
--
40-
luatest.log = utils.log
39+
luatest.log = require('luatest.log')
4140

4241
--- Add before suite hook.
4342
--

luatest/log.lua

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
local tarantool_log = require('log')
2+
3+
local utils = require('luatest.utils')
4+
local pp = require('luatest.pp')
5+
6+
-- Utils for logging
7+
local log = {}
8+
local default_level = 'info'
9+
10+
local function _log(level, msg, ...)
11+
if not utils.version_current_ge_than(2, 5, 1) then
12+
return
13+
end
14+
local args = {...}
15+
for k, v in pairs(args) do
16+
args[k] = pp.tostringlog(v)
17+
end
18+
return tarantool_log[level](msg, unpack(args))
19+
end
20+
21+
--- Extra wrapper for `__call` function
22+
-- An additional function that takes `table` as
23+
-- the first argument to call table function.
24+
local function _log_default(t, msg, ...)
25+
return t[default_level](msg, ...)
26+
end
27+
28+
function log.info(msg, ...)
29+
return _log('info', msg, ...)
30+
end
31+
32+
function log.verbose(msg, ...)
33+
return _log('verbose', msg, ...)
34+
end
35+
36+
function log.debug(msg, ...)
37+
return _log('debug', msg, ...)
38+
end
39+
40+
function log.warn(msg, ...)
41+
return _log('warn', msg, ...)
42+
end
43+
44+
function log.error(msg, ...)
45+
return _log('error', msg, ...)
46+
end
47+
48+
setmetatable(log, {__call = _log_default})
49+
50+
return log

luatest/utils.lua

-11
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
local digest = require('digest')
22
local fun = require('fun')
33
local yaml = require('yaml')
4-
local log = require('log')
5-
6-
local pp = require('luatest.pp')
74

85
local utils = {}
96

@@ -194,12 +191,4 @@ function utils.is_tarantool_binary(path)
194191
return path:find('^.*/tarantool[^/]*$') ~= nil
195192
end
196193

197-
function utils.log(msg, ...)
198-
local args = {...}
199-
for k, v in pairs(args) do
200-
args[k] = pp.tostringlog(v)
201-
end
202-
log.info(msg, unpack(args))
203-
end
204-
205194
return utils

0 commit comments

Comments
 (0)