diff --git a/package.json b/package.json index 5d107eec1..5c44c343b 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ ], "scripts": { "start:api": "yarn workspace dbgate-api start | pino-pretty", + "start:api:json": "yarn workspace dbgate-api start", "start:app": "cd app && yarn start", "start:api:debug": "cross-env DEBUG=* yarn workspace dbgate-api start", "start:app:debug": "cd app && cross-env DEBUG=* yarn start", diff --git a/packages/api/src/controllers/archive.js b/packages/api/src/controllers/archive.js index 534adf274..91286ea93 100644 --- a/packages/api/src/controllers/archive.js +++ b/packages/api/src/controllers/archive.js @@ -8,7 +8,7 @@ const loadFilesRecursive = require('../utility/loadFilesRecursive'); const getJslFileName = require('../utility/getJslFileName'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('archive'); module.exports = { folders_meta: true, diff --git a/packages/api/src/controllers/auth.js b/packages/api/src/controllers/auth.js index 1179fa2a8..1a4850826 100644 --- a/packages/api/src/controllers/auth.js +++ b/packages/api/src/controllers/auth.js @@ -6,7 +6,7 @@ const { getLogins } = require('../utility/hasPermission'); const { getLogger } = require('dbgate-tools'); const AD = require('activedirectory2').promiseWrapper; -const logger = getLogger(); +const logger = getLogger('auth'); const tokenSecret = uuidv1(); diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 0bc609a3f..6b5d70c78 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -16,7 +16,7 @@ const { safeJsonParse, getLogger } = require('dbgate-tools'); const platformInfo = require('../utility/platformInfo'); const { connectionHasPermission, testConnectionPermission } = require('../utility/hasPermission'); -const logger = getLogger(); +const logger = getLogger('connections'); let volatileConnections = {}; diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 4a4ca30e8..28e1fbf39 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -30,7 +30,7 @@ const processArgs = require('../utility/processArgs'); const { testConnectionPermission } = require('../utility/hasPermission'); const { MissingCredentialsError } = require('../utility/exceptions'); -const logger = getLogger(); +const logger = getLogger('databaseConnections'); module.exports = { /** @type {import('dbgate-types').OpenedDatabaseConnection[]} */ diff --git a/packages/api/src/controllers/runners.js b/packages/api/src/controllers/runners.js index 0099dc514..13dd60dec 100644 --- a/packages/api/src/controllers/runners.js +++ b/packages/api/src/controllers/runners.js @@ -16,7 +16,7 @@ const { const { handleProcessCommunication } = require('../utility/processComm'); const processArgs = require('../utility/processArgs'); const platformInfo = require('../utility/platformInfo'); -const logger = getLogger(); +const logger = getLogger('runners'); function extractPlugins(script) { const requireRegex = /\s*\/\/\s*@require\s+([^\s]+)\s*\n/g; @@ -36,7 +36,7 @@ const requirePluginsTemplate = (plugins, isExport) => const scriptTemplate = (script, isExport) => ` const dbgateApi = require(${isExport ? `'dbgate-api'` : 'process.env.DBGATE_API'}); -const logger = dbgateApi.getLogger(); +const logger = dbgateApi.getLogger('script'); dbgateApi.initializeApiEnvironment(); ${requirePluginsTemplate(extractPlugins(script), isExport)} require=null; diff --git a/packages/api/src/controllers/scheduler.js b/packages/api/src/controllers/scheduler.js index 59de2897d..d6a7ffd3c 100644 --- a/packages/api/src/controllers/scheduler.js +++ b/packages/api/src/controllers/scheduler.js @@ -6,7 +6,7 @@ const runners = require('./runners'); const { hasPermission } = require('../utility/hasPermission'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('scheduler'); const scheduleRegex = /\s*\/\/\s*@schedule\s+([^\n]+)\n/; diff --git a/packages/api/src/controllers/sessions.js b/packages/api/src/controllers/sessions.js index 6a3232d0c..8722ba7a4 100644 --- a/packages/api/src/controllers/sessions.js +++ b/packages/api/src/controllers/sessions.js @@ -10,7 +10,7 @@ const processArgs = require('../utility/processArgs'); const { appdir } = require('../utility/directories'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('sessions'); module.exports = { /** @type {import('dbgate-types').OpenedSession[]} */ diff --git a/packages/api/src/controllers/uploads.js b/packages/api/src/controllers/uploads.js index e02436839..e4f68d555 100644 --- a/packages/api/src/controllers/uploads.js +++ b/packages/api/src/controllers/uploads.js @@ -2,7 +2,7 @@ const path = require('path'); const { uploadsdir } = require('../utility/directories'); const uuidv1 = require('uuid/v1'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('uploads'); module.exports = { upload_meta: { diff --git a/packages/api/src/main.js b/packages/api/src/main.js index 58a159d9c..d9d81c61f 100644 --- a/packages/api/src/main.js +++ b/packages/api/src/main.js @@ -35,7 +35,7 @@ const { getLogins } = require('./utility/hasPermission'); const _ = require('lodash'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('main'); function start() { // console.log('process.argv', process.argv); diff --git a/packages/api/src/proc/databaseConnectionProcess.js b/packages/api/src/proc/databaseConnectionProcess.js index c36a9c0c5..4e94d627f 100644 --- a/packages/api/src/proc/databaseConnectionProcess.js +++ b/packages/api/src/proc/databaseConnectionProcess.js @@ -9,7 +9,7 @@ const { SqlGenerator } = require('dbgate-tools'); const generateDeploySql = require('../shell/generateDeploySql'); const { dumpSqlSelect } = require('dbgate-sqltree'); -const logger = getLogger(); +const logger = getLogger('dbconnProcess'); let systemConnection; let storedConnection; diff --git a/packages/api/src/proc/serverConnectionProcess.js b/packages/api/src/proc/serverConnectionProcess.js index ae64fdefb..98f88a5e5 100644 --- a/packages/api/src/proc/serverConnectionProcess.js +++ b/packages/api/src/proc/serverConnectionProcess.js @@ -4,7 +4,7 @@ const childProcessChecker = require('../utility/childProcessChecker'); const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); const { handleProcessCommunication } = require('../utility/processComm'); -const logger = getLogger(); +const logger = getLogger('srvconnProcess'); let systemConnection; let storedConnection; diff --git a/packages/api/src/proc/sessionProcess.js b/packages/api/src/proc/sessionProcess.js index 5c52545af..e8e65809a 100644 --- a/packages/api/src/proc/sessionProcess.js +++ b/packages/api/src/proc/sessionProcess.js @@ -12,7 +12,7 @@ const connectUtility = require('../utility/connectUtility'); const { handleProcessCommunication } = require('../utility/processComm'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('sessionProcess'); let systemConnection; let storedConnection; diff --git a/packages/api/src/proc/sshForwardProcess.js b/packages/api/src/proc/sshForwardProcess.js index 1c4bb9c24..5e6480d00 100644 --- a/packages/api/src/proc/sshForwardProcess.js +++ b/packages/api/src/proc/sshForwardProcess.js @@ -5,7 +5,7 @@ const { handleProcessCommunication } = require('../utility/processComm'); const { SSHConnection } = require('../utility/SSHConnection'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('sshProcess'); async function getSshConnection(connection) { const sshConfig = { diff --git a/packages/api/src/shell/dumpDatabase.js b/packages/api/src/shell/dumpDatabase.js index f5059e65d..0e2599151 100644 --- a/packages/api/src/shell/dumpDatabase.js +++ b/packages/api/src/shell/dumpDatabase.js @@ -2,7 +2,7 @@ const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('dumpDb'); function doDump(dumper) { return new Promise((resolve, reject) => { diff --git a/packages/api/src/shell/executeQuery.js b/packages/api/src/shell/executeQuery.js index a00fdd4db..a13361bda 100644 --- a/packages/api/src/shell/executeQuery.js +++ b/packages/api/src/shell/executeQuery.js @@ -2,7 +2,7 @@ const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('execQuery'); async function executeQuery({ connection = undefined, systemConnection = undefined, driver = undefined, sql }) { logger.info({ sql }, `Execute query`); diff --git a/packages/api/src/shell/importDatabase.js b/packages/api/src/shell/importDatabase.js index 9c44a1b0f..b59f9d4b9 100644 --- a/packages/api/src/shell/importDatabase.js +++ b/packages/api/src/shell/importDatabase.js @@ -6,7 +6,7 @@ const download = require('./download'); const stream = require('stream'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('importDb'); class ImportStream extends stream.Transform { constructor(pool, driver) { diff --git a/packages/api/src/shell/jsonArrayWriter.js b/packages/api/src/shell/jsonArrayWriter.js index 3ee2e3422..ed18b86f6 100644 --- a/packages/api/src/shell/jsonArrayWriter.js +++ b/packages/api/src/shell/jsonArrayWriter.js @@ -2,7 +2,7 @@ const { getLogger } = require('dbgate-tools'); const fs = require('fs'); const stream = require('stream'); -const logger = getLogger(); +const logger = getLogger('jsonArrayWriter'); class StringifyStream extends stream.Transform { constructor() { diff --git a/packages/api/src/shell/jsonLinesReader.js b/packages/api/src/shell/jsonLinesReader.js index 16a2bcc95..399002ca1 100644 --- a/packages/api/src/shell/jsonLinesReader.js +++ b/packages/api/src/shell/jsonLinesReader.js @@ -2,7 +2,7 @@ const fs = require('fs'); const stream = require('stream'); const byline = require('byline'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('jsonLinesReader'); class ParseStream extends stream.Transform { constructor({ limitRows }) { diff --git a/packages/api/src/shell/jsonLinesWriter.js b/packages/api/src/shell/jsonLinesWriter.js index 8f6d3c112..a559e3174 100644 --- a/packages/api/src/shell/jsonLinesWriter.js +++ b/packages/api/src/shell/jsonLinesWriter.js @@ -1,7 +1,7 @@ const { getLogger } = require('dbgate-tools'); const fs = require('fs'); const stream = require('stream'); -const logger = getLogger(); +const logger = getLogger('jsonLinesWriter'); class StringifyStream extends stream.Transform { constructor({ header }) { diff --git a/packages/api/src/shell/queryReader.js b/packages/api/src/shell/queryReader.js index 93e15c708..ec1634104 100644 --- a/packages/api/src/shell/queryReader.js +++ b/packages/api/src/shell/queryReader.js @@ -1,7 +1,7 @@ const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('queryReader'); async function queryReader({ connection, diff --git a/packages/api/src/shell/requirePlugin.js b/packages/api/src/shell/requirePlugin.js index 6d06d995b..7e1c46769 100644 --- a/packages/api/src/shell/requirePlugin.js +++ b/packages/api/src/shell/requirePlugin.js @@ -4,7 +4,7 @@ const { pluginsdir, packagedPluginsDir, getPluginBackendPath } = require('../uti const nativeModules = require('../nativeModules'); const platformInfo = require('../utility/platformInfo'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('requirePlugin'); const loadedPlugins = {}; diff --git a/packages/api/src/shell/sqlDataWriter.js b/packages/api/src/shell/sqlDataWriter.js index 17d1111ee..3dd6bad26 100644 --- a/packages/api/src/shell/sqlDataWriter.js +++ b/packages/api/src/shell/sqlDataWriter.js @@ -3,7 +3,7 @@ const stream = require('stream'); const path = require('path'); const { driverBase, getLogger } = require('dbgate-tools'); const requireEngineDriver = require('../utility/requireEngineDriver'); -const logger = getLogger(); +const logger = getLogger('sqlDataWriter'); class SqlizeStream extends stream.Transform { constructor({ fileName, dataName }) { diff --git a/packages/api/src/shell/tableReader.js b/packages/api/src/shell/tableReader.js index 3362fc225..84661f2ca 100644 --- a/packages/api/src/shell/tableReader.js +++ b/packages/api/src/shell/tableReader.js @@ -1,7 +1,7 @@ const { quoteFullName, fullNameToString, getLogger } = require('dbgate-tools'); const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); -const logger = getLogger(); +const logger = getLogger('tableReader'); async function tableReader({ connection, pureName, schemaName }) { const driver = requireEngineDriver(connection); diff --git a/packages/api/src/shell/tableWriter.js b/packages/api/src/shell/tableWriter.js index 9b3711bef..e03b55ad6 100644 --- a/packages/api/src/shell/tableWriter.js +++ b/packages/api/src/shell/tableWriter.js @@ -1,7 +1,7 @@ const { fullNameToString, getLogger } = require('dbgate-tools'); const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); -const logger = getLogger(); +const logger = getLogger('tableWriter'); async function tableWriter({ connection, schemaName, pureName, driver, systemConnection, ...options }) { logger.info(`Writing table ${fullNameToString({ schemaName, pureName })}`); diff --git a/packages/api/src/utility/childProcessChecker.js b/packages/api/src/utility/childProcessChecker.js index 427fba78f..4e39db47f 100644 --- a/packages/api/src/utility/childProcessChecker.js +++ b/packages/api/src/utility/childProcessChecker.js @@ -1,6 +1,6 @@ const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('childProcessChecked'); let counter = 0; diff --git a/packages/api/src/utility/directories.js b/packages/api/src/utility/directories.js index 769f777c3..2d84218fc 100644 --- a/packages/api/src/utility/directories.js +++ b/packages/api/src/utility/directories.js @@ -6,7 +6,7 @@ const platformInfo = require('./platformInfo'); const processArgs = require('./processArgs'); const consoleObjectWriter = require('../shell/consoleObjectWriter'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('directories'); const createDirectories = {}; const ensureDirectory = (dir, clean) => { diff --git a/packages/api/src/utility/sshTunnel.js b/packages/api/src/utility/sshTunnel.js index 93ac66122..38f7344f9 100644 --- a/packages/api/src/utility/sshTunnel.js +++ b/packages/api/src/utility/sshTunnel.js @@ -6,7 +6,7 @@ const lock = new AsyncLock(); const { fork } = require('child_process'); const processArgs = require('../utility/processArgs'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('sshTunnel'); const sshTunnelCache = {}; diff --git a/packages/api/src/utility/useController.js b/packages/api/src/utility/useController.js index be7e4c2f6..0251e38d3 100644 --- a/packages/api/src/utility/useController.js +++ b/packages/api/src/utility/useController.js @@ -4,7 +4,7 @@ const getExpressPath = require('./getExpressPath'); const { MissingCredentialsError } = require('./exceptions'); const { getLogger } = require('dbgate-tools'); -const logger = getLogger(); +const logger = getLogger('useController'); /** * @param {string} route */ diff --git a/packages/tools/src/DatabaseAnalyser.ts b/packages/tools/src/DatabaseAnalyser.ts index 7d3732198..d3f8d7563 100644 --- a/packages/tools/src/DatabaseAnalyser.ts +++ b/packages/tools/src/DatabaseAnalyser.ts @@ -5,7 +5,7 @@ import _pick from 'lodash/pick'; import _compact from 'lodash/compact'; import { getLogger } from './getLogger'; -const logger = getLogger(); +const logger = getLogger('dbAnalyser'); const STRUCTURE_FIELDS = ['tables', 'collections', 'views', 'matviews', 'functions', 'procedures', 'triggers']; diff --git a/packages/tools/src/SqlGenerator.ts b/packages/tools/src/SqlGenerator.ts index 704c4f50e..bdf058449 100644 --- a/packages/tools/src/SqlGenerator.ts +++ b/packages/tools/src/SqlGenerator.ts @@ -13,7 +13,7 @@ import { getLogger } from './getLogger'; import { SqlDumper } from './SqlDumper'; import { extendDatabaseInfo } from './structureTools'; -const logger = getLogger(); +const logger = getLogger('sqlGenerator'); interface SqlGeneratorOptions { dropTables: boolean; diff --git a/packages/tools/src/createBulkInsertStreamBase.ts b/packages/tools/src/createBulkInsertStreamBase.ts index 654462007..d64165288 100644 --- a/packages/tools/src/createBulkInsertStreamBase.ts +++ b/packages/tools/src/createBulkInsertStreamBase.ts @@ -2,7 +2,7 @@ import _intersection from 'lodash/intersection'; import { getLogger } from './getLogger'; import { prepareTableForImport } from './tableTransforms'; -const logger = getLogger(); +const logger = getLogger('bulkStreamBase'); export function createBulkInsertStreamBase(driver, stream, pool, name, options): any { const fullNameQuoted = name.schemaName diff --git a/packages/tools/src/getLogger.ts b/packages/tools/src/getLogger.ts index 649b7a024..3a591ee1a 100644 --- a/packages/tools/src/getLogger.ts +++ b/packages/tools/src/getLogger.ts @@ -7,6 +7,10 @@ export function setLogger(value: Logger) { _logger = value; } -export function getLogger(): Logger { - return _logger || defaultLogger; +export function getLogger(caller?: string): Logger { + let res = _logger || defaultLogger; + if (caller) { + res = res.child({ caller }); + } + return res; } diff --git a/plugins/dbgate-plugin-csv/src/backend/writer.js b/plugins/dbgate-plugin-csv/src/backend/writer.js index a85f2e31f..bd8e10076 100644 --- a/plugins/dbgate-plugin-csv/src/backend/writer.js +++ b/plugins/dbgate-plugin-csv/src/backend/writer.js @@ -4,7 +4,7 @@ const stream = require('stream'); const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('csvWriter'); class CsvPrepareStream extends stream.Transform { constructor({ header }) { diff --git a/plugins/dbgate-plugin-mongo/src/backend/createBulkInsertStream.js b/plugins/dbgate-plugin-mongo/src/backend/createBulkInsertStream.js index 514589227..e554d9a05 100644 --- a/plugins/dbgate-plugin-mongo/src/backend/createBulkInsertStream.js +++ b/plugins/dbgate-plugin-mongo/src/backend/createBulkInsertStream.js @@ -1,7 +1,7 @@ const ObjectId = require('mongodb').ObjectId; const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('mongoBulkInsert'); function createBulkInsertStream(driver, stream, pool, name, options) { diff --git a/plugins/dbgate-plugin-mysql/src/backend/drivers.js b/plugins/dbgate-plugin-mysql/src/backend/drivers.js index e06164db6..a6b103126 100644 --- a/plugins/dbgate-plugin-mysql/src/backend/drivers.js +++ b/plugins/dbgate-plugin-mysql/src/backend/drivers.js @@ -7,7 +7,7 @@ const { createBulkInsertStreamBase, makeUniqueColumnNames } = require('dbgate-to const { MySqlDumper } = require('antares-mysql-dumper'); const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('mysqlDriver'); function extractColumns(fields) { if (fields) { diff --git a/plugins/dbgate-plugin-postgres/src/backend/drivers.js b/plugins/dbgate-plugin-postgres/src/backend/drivers.js index 04c4416f4..d8cac6a61 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/drivers.js +++ b/plugins/dbgate-plugin-postgres/src/backend/drivers.js @@ -7,7 +7,7 @@ const pg = require('pg'); const { createBulkInsertStreamBase, makeUniqueColumnNames } = require('dbgate-tools'); const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('postreDriver'); pg.types.setTypeParser(1082, 'text', val => val); // date pg.types.setTypeParser(1114, 'text', val => val); // timestamp without timezone diff --git a/plugins/dbgate-plugin-sqlite/src/backend/driver.js b/plugins/dbgate-plugin-sqlite/src/backend/driver.js index b330e492c..c3c24c644 100644 --- a/plugins/dbgate-plugin-sqlite/src/backend/driver.js +++ b/plugins/dbgate-plugin-sqlite/src/backend/driver.js @@ -6,7 +6,7 @@ const { splitQuery, sqliteSplitterOptions } = require('dbgate-query-splitter'); const { createBulkInsertStreamBase, makeUniqueColumnNames } = require('dbgate-tools'); const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('sqliteDriver'); let Database; diff --git a/plugins/dbgate-plugin-xml/src/backend/reader.js b/plugins/dbgate-plugin-xml/src/backend/reader.js index efdeceb54..4b035b7e3 100644 --- a/plugins/dbgate-plugin-xml/src/backend/reader.js +++ b/plugins/dbgate-plugin-xml/src/backend/reader.js @@ -3,7 +3,7 @@ const stream = require('stream'); const NodeXmlStream = require('node-xml-stream-parser'); const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('xmlReader'); class ParseStream extends stream.Transform { constructor({ itemElementName }) { diff --git a/plugins/dbgate-plugin-xml/src/backend/writer.js b/plugins/dbgate-plugin-xml/src/backend/writer.js index 7372dce19..29009da94 100644 --- a/plugins/dbgate-plugin-xml/src/backend/writer.js +++ b/plugins/dbgate-plugin-xml/src/backend/writer.js @@ -2,7 +2,7 @@ const fs = require('fs'); const stream = require('stream'); const { getLogger } = global.DBGATE_TOOLS; -const logger = getLogger(); +const logger = getLogger('xmlWriter'); function escapeXml(value) { return value.replace(/[<>&'"]/g, function (c) {