diff --git a/packages/api/src/controllers/runners.js b/packages/api/src/controllers/runners.js index 13dd60dec..393c64f84 100644 --- a/packages/api/src/controllers/runners.js +++ b/packages/api/src/controllers/runners.js @@ -111,6 +111,8 @@ module.exports = { [ '--checkParent', // ...process.argv.slice(3) '--is-forked-api', + '--process-display-name', + 'script', ...processArgs.getPassArgs(), ], { diff --git a/packages/api/src/index.js b/packages/api/src/index.js index 7887bc465..047363b28 100644 --- a/packages/api/src/index.js +++ b/packages/api/src/index.js @@ -1,4 +1,4 @@ -const { setLogger, getLogger } = require('dbgate-tools'); +const { setLogger, getLogger, setLoggerName } = require('dbgate-tools'); const processArgs = require('./utility/processArgs'); const pino = require('pino'); const pinoms = require('pino-multi-stream'); @@ -7,13 +7,24 @@ const moment = require('moment'); const path = require('path'); const { logsdir } = require('./utility/directories'); +if (processArgs.startProcess) { + setLoggerName(processArgs.startProcess.replace(/Process$/, '')); +} +if (processArgs.processDisplayName) { + setLoggerName(processArgs.processDisplayName); +} + if (processArgs.listenApi) { // configure logger - var logger = pinoms({ + let logger = pinoms({ streams: [ { stream: process.stdout }, // an "info" level destination stream - { stream: fs.createWriteStream(path.join(logsdir(), `${moment().format('YYYY-MM-DD-HH-mm')}-${process.pid}.ndjson`)) }, + { + stream: fs.createWriteStream( + path.join(logsdir(), `${moment().format('YYYY-MM-DD-HH-mm')}-${process.pid}.ndjson`) + ), + }, ], }); diff --git a/packages/api/src/utility/processArgs.js b/packages/api/src/utility/processArgs.js index 68514c79f..6bf866512 100644 --- a/packages/api/src/utility/processArgs.js +++ b/packages/api/src/utility/processArgs.js @@ -11,6 +11,7 @@ const startProcess = getNamedArg('--start-process'); const isForkedApi = process.argv.includes('--is-forked-api'); const pluginsDir = getNamedArg('--plugins-dir'); const workspaceDir = getNamedArg('--workspace-dir'); +const processDisplayName = getNamedArg('--process-display-name'); const listenApi = process.argv.includes('--listen-api'); const listenApiChild = process.argv.includes('--listen-api-child') || listenApi; @@ -37,4 +38,5 @@ module.exports = { workspaceDir, listenApi, listenApiChild, + processDisplayName, }; diff --git a/packages/tools/src/getLogger.ts b/packages/tools/src/getLogger.ts index 3a591ee1a..ef35df6a7 100644 --- a/packages/tools/src/getLogger.ts +++ b/packages/tools/src/getLogger.ts @@ -1,6 +1,7 @@ import pino, { Logger } from 'pino'; let _logger: Logger; +let _name: string = null; const defaultLogger: Logger = pino(); export function setLogger(value: Logger) { @@ -10,7 +11,15 @@ export function setLogger(value: Logger) { export function getLogger(caller?: string): Logger { let res = _logger || defaultLogger; if (caller) { - res = res.child({ caller }); + const props = { caller }; + if (_name) { + props['name'] = _name; + } + res = res.child(props); } return res; } + +export function setLoggerName(value) { + _name = value; +}