From def2909da6d0dcbbef382c23fd060a84ef742c83 Mon Sep 17 00:00:00 2001 From: Justin-ZS Date: Mon, 28 Oct 2019 11:38:58 +0800 Subject: [PATCH 1/3] pretty default logger --- packages/cubejs-server-core/core/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cubejs-server-core/core/index.js b/packages/cubejs-server-core/core/index.js index 01432b76d6aa6..21e5b9a7180dc 100644 --- a/packages/cubejs-server-core/core/index.js +++ b/packages/cubejs-server-core/core/index.js @@ -68,7 +68,7 @@ class CubejsServerCore { this.logger = options.logger || ((msg, params) => { const { error, ...restParams } = params; if (process.env.NODE_ENV !== 'production') { - console.log(`${msg}: ${JSON.stringify(restParams)}${error ? `\n${error}` : ''}`); + console.log(`\u001b[32m${msg}\u001b[0m: ${JSON.stringify(restParams, null, 2)}${error ? `\n${error}` : ''}`); } else { console.log(JSON.stringify({ message: msg, ...params })); } From 0a9813821717326fc0b8fd8bcdf97532aa672348 Mon Sep 17 00:00:00 2001 From: Justin-ZS Date: Mon, 28 Oct 2019 23:39:50 +0800 Subject: [PATCH 2/3] feat: default logger in levels --- packages/cubejs-server-core/core/index.js | 25 ++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/cubejs-server-core/core/index.js b/packages/cubejs-server-core/core/index.js index 21e5b9a7180dc..2686f8635058a 100644 --- a/packages/cubejs-server-core/core/index.js +++ b/packages/cubejs-server-core/core/index.js @@ -41,6 +41,29 @@ const checkEnvForPlaceholders = () => { } }; +const devLogger = (type, message, error) => { + const colors = { + red: '31', // ERROR + green: '32', // INFO + blue: '34', // TRACE + } + const withColor = (str, color = colors.green) => `\u001b[${color}m${str}\u001b[0m`; + const format = json => JSON.stringify(json, null, 2); + + if ([ // INFO list + 'Performing query', + 'Performing query completed', + ].includes(type)) { + if (error) console.log(`${withColor(type, colors.blue)}: ${error}`); + else console.log(`${withColor(type, colors.blue)}: ${format(message)}`); + return; + } + // ERROR + if (error) return console.log(`${withColor(type, colors.red)}: ${error}`); + // TRACE + console.log(`${withColor(type, colors.green)}: ${format(message)}`); +} + class CubejsServerCore { constructor(options) { options = options || {}; @@ -68,7 +91,7 @@ class CubejsServerCore { this.logger = options.logger || ((msg, params) => { const { error, ...restParams } = params; if (process.env.NODE_ENV !== 'production') { - console.log(`\u001b[32m${msg}\u001b[0m: ${JSON.stringify(restParams, null, 2)}${error ? `\n${error}` : ''}`); + devLogger(msg, restParams, error); } else { console.log(JSON.stringify({ message: msg, ...params })); } From b4632f2502adec98c9d6fda0a9d49b64d827b9ce Mon Sep 17 00:00:00 2001 From: Justin-ZS Date: Tue, 29 Oct 2019 20:34:39 +0800 Subject: [PATCH 3/3] fix: update logger according to review --- packages/cubejs-server-core/core/index.js | 40 ++++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/cubejs-server-core/core/index.js b/packages/cubejs-server-core/core/index.js index 2686f8635058a..146a3b93f005f 100644 --- a/packages/cubejs-server-core/core/index.js +++ b/packages/cubejs-server-core/core/index.js @@ -41,28 +41,36 @@ const checkEnvForPlaceholders = () => { } }; -const devLogger = (type, message, error) => { +const devLogger = (level) => (type, message, error) => { const colors = { red: '31', // ERROR green: '32', // INFO - blue: '34', // TRACE - } + }; + const withColor = (str, color = colors.green) => `\u001b[${color}m${str}\u001b[0m`; const format = json => JSON.stringify(json, null, 2); - if ([ // INFO list - 'Performing query', - 'Performing query completed', - ].includes(type)) { - if (error) console.log(`${withColor(type, colors.blue)}: ${error}`); - else console.log(`${withColor(type, colors.blue)}: ${format(message)}`); - return; + const logError = () => console.log(`${withColor(type, colors.red)}: ${format(message)} \n${error}`); + const logType = () => console.log(`${withColor(type)}`); + const logDetails = () => console.log(`${withColor(type)}: ${format(message)}`); + + if (error) return logError(); + + switch (level) { + case "ERROR": + return logType(); + case "TRACE": + return logDetails(); + case "INFO": + default: { + if ([ + 'Performing query', + 'Performing query completed', + ].includes(type)) return logDetails(); + return logType(); + } } - // ERROR - if (error) return console.log(`${withColor(type, colors.red)}: ${error}`); - // TRACE - console.log(`${withColor(type, colors.green)}: ${format(message)}`); -} +}; class CubejsServerCore { constructor(options) { @@ -91,7 +99,7 @@ class CubejsServerCore { this.logger = options.logger || ((msg, params) => { const { error, ...restParams } = params; if (process.env.NODE_ENV !== 'production') { - devLogger(msg, restParams, error); + devLogger(process.env.CUBEJS_LOG_LEVEL)(msg, restParams, error); } else { console.log(JSON.stringify({ message: msg, ...params })); }