diff --git a/packages/api/src/index.js b/packages/api/src/index.js index 462aa2c00..be8a131b9 100644 --- a/packages/api/src/index.js +++ b/packages/api/src/index.js @@ -20,9 +20,13 @@ function configureLogger() { let logger = pinoms({ streams: [ - { stream: process.stdout }, // an "info" level destination stream + { + stream: process.stdout, + level: process.env.CONSOLE_LOG_LEVEL || process.env.LOG_LEVEL || 'info', + }, { stream: fs.createWriteStream(logsFilePath), + level: process.env.FILE_LOG_LEVEL || process.env.LOG_LEVEL || 'info', }, ], }); diff --git a/packages/api/src/utility/pipeForkLogs.js b/packages/api/src/utility/pipeForkLogs.js index 1db7b098d..a43c1929c 100644 --- a/packages/api/src/utility/pipeForkLogs.js +++ b/packages/api/src/utility/pipeForkLogs.js @@ -2,9 +2,22 @@ const byline = require('byline'); const { safeJsonParse, getLogger } = require('dbgate-tools'); const logger = getLogger(); +const levelNames = { + 10: 'trace', + 20: 'debug', + 30: 'info', + 40: 'warn', + 50: 'error', + 60: 'fatal', +}; + const logDispatcher = method => data => { const json = safeJsonParse(data.toString()); - logger[method](json || data.toString()); + if (json && json.level && levelNames[json.level]) { + logger[levelNames[json.level]](json || data.toString()); + } else { + logger[method](json || data.toString()); + } }; function pipeForkLogs(subprocess) {