From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 6A3524696C0 for ; Tue, 2 Jun 2020 01:26:09 +0300 (MSK) Received: by mail-lj1-f174.google.com with SMTP id z13so10177465ljn.7 for ; Mon, 01 Jun 2020 15:26:09 -0700 (PDT) From: Cyrill Gorcunov Date: Tue, 2 Jun 2020 01:25:01 +0300 Message-Id: <20200601222507.560415-6-gorcunov@gmail.com> In-Reply-To: <20200601222507.560415-1-gorcunov@gmail.com> References: <20200601222507.560415-1-gorcunov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v7 05/11] lua/log: do not allow to set json for boot logger List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tml For some reason we've missed that say_set_log_format doesn't support json format not only for syslog but for boottime logging as well. Part-of #689 Signed-off-by: Cyrill Gorcunov --- src/lua/log.lua | 7 +++++-- test/app-tap/logger.test.lua | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lua/log.lua b/src/lua/log.lua index 94d8ca46c..d5a99076d 100644 --- a/src/lua/log.lua +++ b/src/lua/log.lua @@ -160,8 +160,11 @@ local function log_format(name) end if fmt_str2num[name] == ffi.C.SF_JSON then - if ffi.C.log_type() == ffi.C.SAY_LOGGER_SYSLOG then - error("log_format: 'json' can't be used with syslog logger") + if ffi.C.log_type() == ffi.C.SAY_LOGGER_SYSLOG or + ffi.C.log_type() == ffi.C.SAY_LOGGER_BOOT then + local m = "log_format: %s can't be used with " .. + "syslog or boot-time logger" + error(m:format(fmt_num2str[ffi.C.SF_JSON])) end ffi.C.say_set_log_format(ffi.C.SF_JSON) else diff --git a/test/app-tap/logger.test.lua b/test/app-tap/logger.test.lua index 492d5ea0b..676c860d3 100755 --- a/test/app-tap/logger.test.lua +++ b/test/app-tap/logger.test.lua @@ -1,12 +1,13 @@ #!/usr/bin/env tarantool local test = require('tap').test('log') -test:plan(24) +test:plan(25) -- gh-3946: Assertion failure when using log_format() before box.cfg() local log = require('log') -log.log_format('json') log.log_format('plain') +_,err = pcall(log, {log_format = 'json'}) +test:ok(err ~= nil) -- -- Check that Tarantool creates ADMIN session for #! script -- 2.26.2