diff --git a/packages/nightingale-logger/lib-browsers-dev/index.js b/packages/nightingale-logger/lib-browsers-dev/index.js index 2e9fe5f84..716af3849 100644 --- a/packages/nightingale-logger/lib-browsers-dev/index.js +++ b/packages/nightingale-logger/lib-browsers-dev/index.js @@ -72,7 +72,9 @@ var Logger = function () { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key: key, displayName: displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-browsers-dev/index.js.map b/packages/nightingale-logger/lib-browsers-dev/index.js.map index ea0275af6..8d2151cdb 100644 --- a/packages/nightingale-logger/lib-browsers-dev/index.js.map +++ b/packages/nightingale-logger/lib-browsers-dev/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-browsers/index.js b/packages/nightingale-logger/lib-browsers/index.js index 2bcea69f5..b7d43e962 100644 --- a/packages/nightingale-logger/lib-browsers/index.js +++ b/packages/nightingale-logger/lib-browsers/index.js @@ -64,7 +64,9 @@ var Logger = function () { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key: key, displayName: displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-browsers/index.js.map b/packages/nightingale-logger/lib-browsers/index.js.map index 92e4c9ca2..494638ab2 100644 --- a/packages/nightingale-logger/lib-browsers/index.js.map +++ b/packages/nightingale-logger/lib-browsers/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":";;;;;;;;;;AAAA;;;;AACA;;;;;;;;AAEA,IAAI,CAACA,OAAOC,mCAAZ,EAAiD;AAC/CD,SAAOC,mCAAP,GAA6C,YAAY;AACvD,WAAO,EAAEC,YAAF,EAAgBC,cAAhB,EAAP;AACD,GAFD;AAGD;;AAED,IAAI,CAACH,OAAOI,0CAAZ,EAAwD;AACtDJ,SAAOI,0CAAP,GAAoD,UAAUC,GAAV,EAAeC,KAAf,EAAsB;AAAA,gCACvCN,OAAOC,mCAAP,CAA2CI,GAA3C,CADuC;AAAA,QAChEH,QADgE,yBAChEA,QADgE;AAAA,QACtDC,UADsD,yBACtDA,UADsD;;AAGxE,WAAO;AACLD,gBAAUA,SAASK,MAAT,CAAgB;AAAA,eACxBD,SAASE,QAAQC,QAAjB,KAA8B,CAACD,QAAQE,UAAT,IAAuBF,QAAQE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CAArD,CADwB;AAAA,OAAhB,CADL;AAILF;AAJK,KAAP;AAMD,GATD;AAUD;;AAGD;AACA,SAASQ,wBAAT,CAAkCN,GAAlC,EAAuCO,WAAvC,EAAoD;AAClD,SAAOZ,OAAOI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;;AAED;;;;;IAIqBC,M;;AAInB;;;;;;AAMA,kBAAYR,GAAZ,EAAyBS,WAAzB,EAA+C;AAAA;;AAC7C,SAAKT,GAAL,GAAWA,IAAIU,OAAJ,CAAY,GAAZ,EAAiB,GAAjB,CAAX;AACA,SAAKD,WAAL,GAAmBA,WAAnB;AACA,QAAIT,IAAIW,QAAJ,CAAa,GAAb,CAAJ,EAAuB,KAAKC,IAAL,CAAU,yDAAV;AACxB;;AAED;;;;;6CACyBL,W,EAAa;AACpC,aAAOD,yBAAyB,KAAKN,GAA9B,EAAmCO,WAAnC,CAAP;AACD;;AAED;;;;gCACY;AACV,aAAOZ,OAAOC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;;AAED;;;;;;;;;;0BAOMa,c,EAAwBC,gB,EAA2B;AACvD,aAAO,IAAIN,MAAJ,CAAc,KAAKR,GAAnB,SAA0Ba,cAA1B,EAA4CC,gBAA5C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;4BAeQC,Q,EAAiB;AACvB,UAAMC,SAAS,IAAIR,MAAJ,CAAW,KAAKR,GAAhB,CAAf;AACAgB,aAAOC,UAAP,CAAkBF,QAAlB;AACA,aAAOC,MAAP;AACD;;AAED;;;;;;;;+BAKWD,O,EAAiB;AAC1B,WAAKG,QAAL,GAAgBH,OAAhB;AACD;;AAED;;;;;;;;mCAKeI,e,EAAyB;AACtCC,aAAOC,MAAP,CAAc,KAAKH,QAAnB,EAA6BC,eAA7B;AACD;;AAED;;;;;;;;;;8BAOUG,M,EAAgB;AAAA,kCACO,KAAKC,wBAAL,CAA8BD,OAAOrB,KAArC,CADP;AAAA,UAClBJ,QADkB,yBAClBA,QADkB;AAAA,UACRC,UADQ,yBACRA,UADQ;;AAGxB,UAAID,SAAS2B,MAAT,KAAoB,CAAxB,EAA2B;AACzB,YAAIF,OAAOrB,KAAP,GAAe,4BAAOwB,KAA1B,EAAiC;AAC/B;AACAC,kBAAQC,GAAR,CAAY,4CAAZ,EAA0D;AACxD3B,iBAAKsB,OAAOtB,GAD4C;AAExD4B,qBAASN,OAAOM;AAFwC,WAA1D;AAID;AACD;AACD;;AAED,UAAI9B,UAAJ,EAAgB;AACdA,mBAAW+B,OAAX,CAAmB;AAAA,iBAAWC,QAAQR,MAAR,EAAgBA,OAAOP,OAAvB,CAAX;AAAA,SAAnB;AACD;;AAEDlB,eAASkC,IAAT,CAAc;AAAA,eAAW5B,QAAQ6B,MAAR,CAAeV,MAAf,MAA2B,KAAtC;AAAA,OAAd;AACD;;AAED;;;;;;;;;;;;wBAUEM,O,EACAK,Q,EAGA;AAAA,UAFAhC,KAEA,uEAFgB,4BAAOiC,IAEvB;AAAA,UADAC,OACA,uEADmBC,SACnB;;AACA,UAAIrB,UAAUkB,YAAYA,SAASlB,OAAnC;AACA,UAAIkB,QAAJ,EAAc;AACZ,eAAOA,SAASlB,OAAhB;AACD;;AAED,UAAIO,SAAS;AACXrB,eAAOA,KADI;AAEXD,aAAK,KAAKA,GAFC;AAGXS,qBAAa,KAAKA,WAHP;AAIX4B,kBAAU,IAAIC,IAAJ,EAJC;AAKXV,iBAASA,OALE;AAMXb,iBAASA,WAAW,KAAKG,QANd;AAOXe,kBAAUA,QAPC;AAQXM;AARW,OAAb;;AAWA,UAAIJ,OAAJ,EAAa;AACXb,iBAASF,OAAOC,MAAP,CAAcc,OAAd,EAAuBb,MAAvB,CAAT;AACD;;AAED,WAAKkB,SAAL,CAAelB,MAAf;AACA,aAAO,IAAP;AACD;;AAGD;;;;;;;;;;;0BAQMM,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOS,KAAnC,EAA0C,EAAED,8BAAF,EAA1C,CAAP;AACD;;AAGD;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOU,KAAnC,EAA0C,EAAEF,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;yBAQKb,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOC,IAAnC,EAAyC,EAAEO,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;yBAQKb,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOW,IAAnC,EAAyC,EAAEH,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAAwC;AAAA,UAA/BK,QAA+B;AAAA,UAAhBQ,cAAgB;;AAC5C,UAAIb,mBAAmBiB,KAAvB,EAA8B;AAC5BZ,iBAASa,KAAT,GAAiBlB,OAAjB;AACAA,kBAAaK,SAASa,KAAT,CAAeC,IAA5B,UAAqCd,SAASa,KAAT,CAAelB,OAApD;AACD;AACD,aAAO,KAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOR,KAAnC,EAA0C,EAAEgB,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOe,KAAnC,EAA0C,EAAEP,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOgB,KAAnC,EAA0C,EAAER,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;iCAQaS,K,EAAOjB,Q,EAAUQ,c,EAAgB;AAC5C;AACA;AACAS,cAAQ,eAAKC,OAAL,CAAaD,KAAb,EAAoB,EAAEE,OAAO,CAAT,EAApB,CAAR;AACA,aAAO,KAAKzB,GAAL,CAASuB,KAAT,EAAgBjB,QAAhB,EAA0B,4BAAOU,KAAjC,EAAwC,EAAEF,8BAAF,EAAkBY,gBAAlB,EAAxC,CAAP;AACD;;AAED;;;;;;;;;;;;+BASWC,O,EAASC,Q,EAAUtB,Q,EAAUQ,c,EAAgB;AACtDc,iBAAW,eAAKJ,OAAL,CAAaI,QAAb,EAAuB,EAAEH,OAAO,CAAT,EAAvB,CAAX;AACA,aAAO,KAAKzB,GAAL,CAAY2B,OAAZ,WAAyBC,QAAzB,EAAqCtB,QAArC,EAA+C,4BAAOU,KAAtD,EAA6D,EAAEF,8BAAF,EAAkBY,gBAAlB,EAA7D,CAAP;AACD;;AAED;;;;;;;;;;;4BAQQzB,O,EAASK,Q,EAAUQ,c,EAAgB;AACzC,aAAO,KAAKe,WAAL,CAAiB5B,OAAjB,EAA0BK,QAA1B,EAAoCQ,cAApC,CAAP;AACD;;AAED;;;;;;;;;;;gCAQYb,O,EAASK,Q,EAAUQ,c,EAAgB;AAC7C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOC,IAAnC,EAAyC;AAC9CO,sCAD8C;AAE9CgB,gBAAQ,GAFsC;AAG9CJ;AAH8C,OAAzC,CAAP;AAKD;;AAED;;;;;;;;;;;iCAQazB,O,EAASK,Q,EAAUQ,c,EAAgB;AAC9C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOU,KAAnC,EAA0C;AAC/CF,sCAD+C;AAE/CgB,gBAAQ,GAFuC;AAG/CJ;AAH+C,OAA1C,CAAP;AAKD;;AAED;;;;;;;;;;;yBAQKzB,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKiB,QAAL,CAAc9B,OAAd,EAAuBK,QAAvB,EAAiCQ,cAAjC,CAAP;AACD;;AAED;;;;;;;;;;;6BAQSb,O,EAASK,Q,EAAUQ,c,EAAgB;AAC1C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOC,IAAnC,EAAyC;AAC9CO,sCAD8C;AAE9CgB,gBAAQ,GAFsC;AAG9CJ;AAH8C,OAAzC,CAAP;AAKD;;AAED;;;;;;;;;;;8BAQUzB,O,EAASK,Q,EAAUQ,c,EAAgB;AAC3C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOU,KAAnC,EAA0C;AAC/CF,sCAD+C;AAE/CgB,gBAAQ,GAFuC;AAG/CJ;AAH+C,OAA1C,CAAP;AAKD;;AAED;;;;;;;;;;yBAOKzB,O,EAASK,Q,EAAUQ,c,EAAsC;AAAA,UAAtBxC,KAAsB,uEAAd,4BAAO0C,KAAO;;AAC5D,UAAIf,OAAJ,EAAa;AACX,aAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BhC,KAA5B,EAAmC,EAAEwC,8BAAF,EAAnC;AACD;;AAED,aAAOH,KAAKqB,GAAL,EAAP;AACD;;;6BAEQ/B,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AACpE,aAAO,KAAKmB,IAAL,CAAUhC,OAAV,EAAmBK,QAAnB,EAA6BQ,cAA7B,EAA6C,4BAAOP,IAApD,CAAP;AACD;;AAED;;;;;;;;;;;;;;;4BAYQ0B,I,EAAMhC,O,EAAuE;AAAA,UAA9DK,QAA8D;AAAA,UAA/CQ,cAA+C;AAAA,UAA/BxC,KAA+B,uEAAvB,4BAAO0C,KAAgB;AAAA,UAATR,OAAS;;AACnF,UAAMwB,MAAMrB,KAAKqB,GAAL,EAAZ;;AAEA,UAAME,WAAWF,MAAMC,IAAvB;;AAEA,UAAIC,WAAW,IAAf,EAAqB;AACnB5B,iBAAS6B,YAAT,GAA2BD,QAA3B;AACD,OAFD,MAEO;AACL,YAAME,UAAUF,WAAW,IAAX,IAAmBG,KAAKC,KAAL,CAAWJ,WAAW,IAAtB,CAAnC;;AAEA5B,iBAAS6B,YAAT,SAA2BC,UAAaA,OAAb,cAA+B,EAA1D,KADWF,WAAYE,UAAU,IACjC;AACD;;AAED9B,eAASiC,MAAT,GAAkBL,QAAlB;AACA,WAAKlC,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BhC,KAA5B,eAAwCkC,OAAxC,IAAiDM,8BAAjD;AACD;;AAED;;;;;;gCAGYmB,I,EAAchC,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AACrF,aAAO,KAAK0B,OAAL,CAAaP,IAAb,EAAmBhC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsD,4BAAOP,IAA7D,CAAP;AACD;;AAED;;;;;;uCAGmB0B,I,EAAchC,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAC5F,aAAO,KAAK0B,OAAL,CAAaP,IAAb,EAAmBhC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsD,4BAAOP,IAA7D,EAAmE;AACxEuB,gBAAQ,GADgE;AAExEJ;AAFwE,OAAnE,CAAP;AAID;;AAED;;;;;;;;;;;;;;;;;;;0BAgBMe,E,EAAmC;AAAA,UAA/BnC,QAA+B;AAAA,UAAhBQ,cAAgB;;AACvCR;AACEoC,sBAAcD,GAAGrB;AADnB,SAEKd,QAFL;AAIA,aAAO,KAAKN,GAAL,CAAS,OAAT,EAAkBM,QAAlB,EAA4B,4BAAOS,KAAnC,EAA0C,EAAED,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;yBAkBK2B,E,EAAInC,Q,EAAUQ,c,EAAgB;AACjCR;AACEoC,sBAAcD,GAAGrB;AADnB,SAEKd,QAFL;AAIA,aAAO,KAAKN,GAAL,CAAS,MAAT,EAAiBM,QAAjB,EAA2B,4BAAOS,KAAlC,EAAyC,EAAED,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;yBAkBK2B,E,EAAInC,Q,EAAUQ,c,EAAgB6B,Q,EAAU;AAC3C,UAAI,OAAOrC,QAAP,KAAoB,UAAxB,EAAoC;AAClCqC,mBAAWrC,QAAX;AACAA,mBAAWG,SAAX;AACD,OAHD,MAGO,IAAI,OAAOK,cAAP,KAA0B,UAA9B,EAA0C;AAC/C6B,mBAAW7B,cAAX;AACAA,yBAAiBL,SAAjB;AACD;;AAED,WAAKmC,KAAL,CAAWH,EAAX,EAAenC,QAAf,EAAyBQ,cAAzB;AACA6B;AACA,WAAKE,IAAL,CAAUJ,EAAV;AACD;;;;;;kBA/ekB5D,M","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-node6-dev/index.js b/packages/nightingale-logger/lib-node6-dev/index.js index c55660f17..ef1092a70 100644 --- a/packages/nightingale-logger/lib-node6-dev/index.js +++ b/packages/nightingale-logger/lib-node6-dev/index.js @@ -65,7 +65,9 @@ class Logger { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-node6-dev/index.js.map b/packages/nightingale-logger/lib-node6-dev/index.js.map index 64ff0bace..8feeeb2ed 100644 --- a/packages/nightingale-logger/lib-node6-dev/index.js.map +++ b/packages/nightingale-logger/lib-node6-dev/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-node6/index.js b/packages/nightingale-logger/lib-node6/index.js index a19930011..c8efbeef4 100644 --- a/packages/nightingale-logger/lib-node6/index.js +++ b/packages/nightingale-logger/lib-node6/index.js @@ -57,7 +57,9 @@ class Logger { constructor(key, displayName) { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-node6/index.js.map b/packages/nightingale-logger/lib-node6/index.js.map index bf6ac4f01..7b3cdc849 100644 --- a/packages/nightingale-logger/lib-node6/index.js.map +++ b/packages/nightingale-logger/lib-node6/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-older-node-dev/index.js b/packages/nightingale-logger/lib-older-node-dev/index.js index 2e9fe5f84..716af3849 100644 --- a/packages/nightingale-logger/lib-older-node-dev/index.js +++ b/packages/nightingale-logger/lib-older-node-dev/index.js @@ -72,7 +72,9 @@ var Logger = function () { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key: key, displayName: displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-older-node-dev/index.js.map b/packages/nightingale-logger/lib-older-node-dev/index.js.map index ea0275af6..8d2151cdb 100644 --- a/packages/nightingale-logger/lib-older-node-dev/index.js.map +++ b/packages/nightingale-logger/lib-older-node-dev/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":";;;;;;;;;;;;;;AAAA;;;;AACA;;;;;;;;AAEA,IAAI,CAACA,OAAOC,mCAAZ,EAAiD;AAC/CD,SAAOC,mCAAP,GAA6C,YAAY;AACvD,WAAO,EAAEC,YAAF,EAAgBC,cAAhB,EAAP;AACD,GAFD;AAGD;;AAED,IAAI,CAACH,OAAOI,0CAAZ,EAAwD;AACtDJ,SAAOI,0CAAP,GAAoD,UAAUC,GAAV,EAAeC,KAAf,EAAsB;AAAA,gCACvCN,OAAOC,mCAAP,CAA2CI,GAA3C,CADuC;AAAA,QAChEH,QADgE,yBAChEA,QADgE;AAAA,QACtDC,UADsD,yBACtDA,UADsD;;AAGxE,WAAO;AACLD,gBAAUA,SAASK,MAAT,CAAgB;AAAA,eACxBD,SAASE,QAAQC,QAAjB,KAA8B,CAACD,QAAQE,UAAT,IAAuBF,QAAQE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CAArD,CADwB;AAAA,OAAhB,CADL;AAILF;AAJK,KAAP;AAMD,GATD;AAUD;;AAGD;AACA,SAASQ,wBAAT,CAAkCN,GAAlC,EAAuCO,WAAvC,EAAoD;AAClD,SAAOZ,OAAOI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;;AAED;;;;;IAIqBC,M;;AAInB;;;;;;AAMA,kBAAYR,GAAZ,EAAyBS,WAAzB,EAA+C;AAAA,YAAnCT,GAAmC;;AAAA,YAAtBS,WAAsB;;AAAA;;AAC7C,SAAKT,GAAL,GAAWA,IAAIU,OAAJ,CAAY,GAAZ,EAAiB,GAAjB,CAAX;AACA,SAAKD,WAAL,GAAmBA,WAAnB;AACA,QAAIT,IAAIW,QAAJ,CAAa,GAAb,CAAJ,EAAuB;AACrB,WAAKC,IAAL,CAAU,yDAAV,EAAqE,EAAEZ,QAAF,EAAOS,wBAAP,EAArE;AACD;AACF;;AAED;;;;;6CACyBF,W,EAAa;AACpC,aAAOD,yBAAyB,KAAKN,GAA9B,EAAmCO,WAAnC,CAAP;AACD;;AAED;;;;gCACY;AACV,aAAOZ,OAAOC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;;AAED;;;;;;;;;;0BAOMa,c,EAAwBC,gB,EAA2B;AAAA,cAAnDD,cAAmD;;AAAA,cAA3BC,gBAA2B;;AACvD,aAAO,IAAIN,MAAJ,CAAc,KAAKR,GAAnB,SAA0Ba,cAA1B,EAA4CC,gBAA5C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;4BAeQC,Q,EAAiB;AAAA,cAAjBA,QAAiB;;AACvB,UAAMC,SAAS,IAAIR,MAAJ,CAAW,KAAKR,GAAhB,CAAf;AACAgB,aAAOC,UAAP,CAAkBF,QAAlB;AACA,aAAOC,MAAP;AACD;;AAED;;;;;;;;+BAKWD,O,EAAiB;AAAA,cAAjBA,OAAiB;;AAC1B,WAAKG,QAAL,GAAgBH,OAAhB;AACD;;AAED;;;;;;;;mCAKeI,e,EAAyB;AAAA,cAAzBA,eAAyB;;AACtCC,aAAOC,MAAP,CAAc,KAAKH,QAAnB,EAA6BC,eAA7B;AACD;;AAED;;;;;;;;;;8BAOUG,M,EAAgB;AAAA,cAAhBA,MAAgB;;AAAA,kCACO,KAAKC,wBAAL,CAA8BD,OAAOrB,KAArC,CADP;AAAA,UAClBJ,QADkB,yBAClBA,QADkB;AAAA,UACRC,UADQ,yBACRA,UADQ;;AAGxB,UAAID,SAAS2B,MAAT,KAAoB,CAAxB,EAA2B;AACzB,YAAIF,OAAOrB,KAAP,GAAe,4BAAOwB,KAA1B,EAAiC;AAC/B;AACAC,kBAAQC,GAAR,CAAY,4CAAZ,EAA0D;AACxD3B,iBAAKsB,OAAOtB,GAD4C;AAExD4B,qBAASN,OAAOM;AAFwC,WAA1D;AAID;AACD;AACD;;AAED,UAAI9B,UAAJ,EAAgB;AACdA,mBAAW+B,OAAX,CAAmB;AAAA,iBAAWC,QAAQR,MAAR,EAAgBA,OAAOP,OAAvB,CAAX;AAAA,SAAnB;AACD;;AAEDlB,eAASkC,IAAT,CAAc;AAAA,eAAW5B,QAAQ6B,MAAR,CAAeV,MAAf,MAA2B,KAAtC;AAAA,OAAd;AACD;;AAED;;;;;;;;;;;;wBAUEM,O,EACAK,Q,EAGA;AAAA,UAFAhC,KAEA,uEAFgB,4BAAOiC,IAEvB;AAAA,UADAC,OACA,uEADmBC,SACnB;;AAAA,cAJAR,OAIA;;AAAA,cAHAK,QAGA;;AAAA,cAFAhC,KAEA;;AAAA,cADAkC,OACA;;AACA,UAAIpB,UAAUkB,YAAYA,SAASlB,OAAnC;AACA,UAAIkB,QAAJ,EAAc;AACZ,eAAOA,SAASlB,OAAhB;AACD;;AAED,UAAIO,SAAS;AACXrB,eAAOA,KADI;AAEXD,aAAK,KAAKA,GAFC;AAGXS,qBAAa,KAAKA,WAHP;AAIX4B,kBAAU,IAAIC,IAAJ,EAJC;AAKXV,iBAASA,OALE;AAMXb,iBAASA,WAAW,KAAKG,QANd;AAOXe,kBAAUA,QAPC;AAQXM;AARW,OAAb;;AAWA,UAAIJ,OAAJ,EAAa;AACXb,iBAASF,OAAOC,MAAP,CAAcc,OAAd,EAAuBb,MAAvB,CAAT;AACD;;AAED,WAAKkB,SAAL,CAAelB,MAAf;AACA,aAAO,IAAP;AACD;;AAGD;;;;;;;;;;;0BAQMM,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOS,KAAnC,EAA0C,EAAED,8BAAF,EAA1C,CAAP;AACD;;AAGD;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOU,KAAnC,EAA0C,EAAEF,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;yBAQKb,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOC,IAAnC,EAAyC,EAAEO,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;yBAQKb,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOW,IAAnC,EAAyC,EAAEH,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAAwC;AAAA,UAA/BK,QAA+B;AAAA,UAAhBQ,cAAgB;;AAC5C,UAAIb,mBAAmBiB,KAAvB,EAA8B;AAC5BZ,iBAASa,KAAT,GAAiBlB,OAAjB;AACAA,kBAAaK,SAASa,KAAT,CAAeC,IAA5B,UAAqCd,SAASa,KAAT,CAAelB,OAApD;AACD;AACD,aAAO,KAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOR,KAAnC,EAA0C,EAAEgB,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOe,KAAnC,EAA0C,EAAEP,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOgB,KAAnC,EAA0C,EAAER,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;iCAQaS,K,EAAOjB,Q,EAAUQ,c,EAAgB;AAC5C;AACA;AACAS,cAAQ,eAAKC,OAAL,CAAaD,KAAb,EAAoB,EAAEE,OAAO,CAAT,EAApB,CAAR;AACA,aAAO,KAAKzB,GAAL,CAASuB,KAAT,EAAgBjB,QAAhB,EAA0B,4BAAOU,KAAjC,EAAwC,EAAEF,8BAAF,EAAkBY,gBAAlB,EAAxC,CAAP;AACD;;AAED;;;;;;;;;;;;+BASWC,O,EAASC,Q,EAAUtB,Q,EAAUQ,c,EAAgB;AACtDc,iBAAW,eAAKJ,OAAL,CAAaI,QAAb,EAAuB,EAAEH,OAAO,CAAT,EAAvB,CAAX;AACA,aAAO,KAAKzB,GAAL,CAAY2B,OAAZ,WAAyBC,QAAzB,EAAqCtB,QAArC,EAA+C,4BAAOU,KAAtD,EAA6D,EAAEF,8BAAF,EAAkBY,gBAAlB,EAA7D,CAAP;AACD;;AAED;;;;;;;;;;;4BAQQzB,O,EAASK,Q,EAAUQ,c,EAAgB;AACzC,aAAO,KAAKe,WAAL,CAAiB5B,OAAjB,EAA0BK,QAA1B,EAAoCQ,cAApC,CAAP;AACD;;AAED;;;;;;;;;;;gCAQYb,O,EAASK,Q,EAAUQ,c,EAAgB;AAC7C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOC,IAAnC,EAAyC;AAC9CO,sCAD8C;AAE9CgB,gBAAQ,GAFsC;AAG9CJ;AAH8C,OAAzC,CAAP;AAKD;;AAED;;;;;;;;;;;iCAQazB,O,EAASK,Q,EAAUQ,c,EAAgB;AAC9C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOU,KAAnC,EAA0C;AAC/CF,sCAD+C;AAE/CgB,gBAAQ,GAFuC;AAG/CJ;AAH+C,OAA1C,CAAP;AAKD;;AAED;;;;;;;;;;;yBAQKzB,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKiB,QAAL,CAAc9B,OAAd,EAAuBK,QAAvB,EAAiCQ,cAAjC,CAAP;AACD;;AAED;;;;;;;;;;;6BAQSb,O,EAASK,Q,EAAUQ,c,EAAgB;AAC1C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOC,IAAnC,EAAyC;AAC9CO,sCAD8C;AAE9CgB,gBAAQ,GAFsC;AAG9CJ;AAH8C,OAAzC,CAAP;AAKD;;AAED;;;;;;;;;;;8BAQUzB,O,EAASK,Q,EAAUQ,c,EAAgB;AAC3C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B,4BAAOU,KAAnC,EAA0C;AAC/CF,sCAD+C;AAE/CgB,gBAAQ,GAFuC;AAG/CJ;AAH+C,OAA1C,CAAP;AAKD;;AAED;;;;;;;;;;yBAOKzB,O,EAASK,Q,EAAUQ,c,EAAsC;AAAA,UAAtBxC,KAAsB,uEAAd,4BAAO0C,KAAO;;AAC5D,UAAIf,OAAJ,EAAa;AACX,aAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BhC,KAA5B,EAAmC,EAAEwC,8BAAF,EAAnC;AACD;;AAED,aAAOH,KAAKqB,GAAL,EAAP;AACD;;;6BAEQ/B,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAAA,cAA7Db,OAA6D;;AAAA,cAA5CK,QAA4C;;AAAA,cAAzBQ,cAAyB;;AACpE,aAAO,KAAKmB,IAAL,CAAUhC,OAAV,EAAmBK,QAAnB,EAA6BQ,cAA7B,EAA6C,4BAAOP,IAApD,CAAP;AACD;;AAED;;;;;;;;;;;;;;;4BAYQ0B,I,EAAMhC,O,EAAuE;AAAA,UAA9DK,QAA8D;AAAA,UAA/CQ,cAA+C;AAAA,UAA/BxC,KAA+B,uEAAvB,4BAAO0C,KAAgB;AAAA,UAATR,OAAS;;AACnF,UAAMwB,MAAMrB,KAAKqB,GAAL,EAAZ;;AAEA,UAAME,WAAWF,MAAMC,IAAvB;;AAEA,UAAIC,WAAW,IAAf,EAAqB;AACnB5B,iBAAS6B,YAAT,GAA2BD,QAA3B;AACD,OAFD,MAEO;AACL,YAAME,UAAUF,WAAW,IAAX,IAAmBG,KAAKC,KAAL,CAAWJ,WAAW,IAAtB,CAAnC;;AAEA5B,iBAAS6B,YAAT,SAA2BC,UAAaA,OAAb,cAA+B,EAA1D,KADWF,WAAYE,UAAU,IACjC;AACD;;AAED9B,eAASiC,MAAT,GAAkBL,QAAlB;AACA,WAAKlC,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BhC,KAA5B,eAAwCkC,OAAxC,IAAiDM,8BAAjD;AACD;;AAED;;;;;;gCAGYmB,I,EAAchC,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAAA,cAA3EmB,IAA2E;;AAAA,cAA7DhC,OAA6D;;AAAA,cAA5CK,QAA4C;;AAAA,cAAzBQ,cAAyB;;AACrF,aAAO,KAAK0B,OAAL,CAAaP,IAAb,EAAmBhC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsD,4BAAOP,IAA7D,CAAP;AACD;;AAED;;;;;;uCAGmB0B,I,EAAchC,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAAA,cAA3EmB,IAA2E;;AAAA,cAA7DhC,OAA6D;;AAAA,cAA5CK,QAA4C;;AAAA,cAAzBQ,cAAyB;;AAC5F,aAAO,KAAK0B,OAAL,CAAaP,IAAb,EAAmBhC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsD,4BAAOP,IAA7D,EAAmE;AACxEuB,gBAAQ,GADgE;AAExEJ;AAFwE,OAAnE,CAAP;AAID;;AAED;;;;;;;;;;;;;;;;;;;0BAgBMe,E,EAAmC;AAAA,UAA/BnC,QAA+B;AAAA,UAAhBQ,cAAgB;;AACvCR;AACEoC,sBAAcD,GAAGrB;AADnB,SAEKd,QAFL;AAIA,aAAO,KAAKN,GAAL,CAAS,OAAT,EAAkBM,QAAlB,EAA4B,4BAAOS,KAAnC,EAA0C,EAAED,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;yBAkBK2B,E,EAAInC,Q,EAAUQ,c,EAAgB;AACjCR;AACEoC,sBAAcD,GAAGrB;AADnB,SAEKd,QAFL;AAIA,aAAO,KAAKN,GAAL,CAAS,MAAT,EAAiBM,QAAjB,EAA2B,4BAAOS,KAAlC,EAAyC,EAAED,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;yBAkBK2B,E,EAAInC,Q,EAAUQ,c,EAAgB6B,Q,EAAU;AAC3C,UAAI,OAAOrC,QAAP,KAAoB,UAAxB,EAAoC;AAClCqC,mBAAWrC,QAAX;AACAA,mBAAWG,SAAX;AACD,OAHD,MAGO,IAAI,OAAOK,cAAP,KAA0B,UAA9B,EAA0C;AAC/C6B,mBAAW7B,cAAX;AACAA,yBAAiBL,SAAjB;AACD;;AAED,WAAKmC,KAAL,CAAWH,EAAX,EAAenC,QAAf,EAAyBQ,cAAzB;AACA6B;AACA,WAAKE,IAAL,CAAUJ,EAAV;AACD;;;;;;kBAjfkB5D,M","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-older-node/index.js b/packages/nightingale-logger/lib-older-node/index.js index 2bcea69f5..b7d43e962 100644 --- a/packages/nightingale-logger/lib-older-node/index.js +++ b/packages/nightingale-logger/lib-older-node/index.js @@ -64,7 +64,9 @@ var Logger = function () { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key: key, displayName: displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-older-node/index.js.map b/packages/nightingale-logger/lib-older-node/index.js.map index 92e4c9ca2..494638ab2 100644 --- a/packages/nightingale-logger/lib-older-node/index.js.map +++ b/packages/nightingale-logger/lib-older-node/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-webpack-dev/index.js b/packages/nightingale-logger/lib-webpack-dev/index.js index aa807a806..ff9b6d4c6 100644 --- a/packages/nightingale-logger/lib-webpack-dev/index.js +++ b/packages/nightingale-logger/lib-webpack-dev/index.js @@ -57,7 +57,9 @@ var Logger = function () { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key: key, displayName: displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-webpack-dev/index.js.map b/packages/nightingale-logger/lib-webpack-dev/index.js.map index 45296062d..8eb3bc029 100644 --- a/packages/nightingale-logger/lib-webpack-dev/index.js.map +++ b/packages/nightingale-logger/lib-webpack-dev/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":";;;;;;;;AAAA,OAAOA,IAAP,MAAiB,MAAjB;AACA,OAAOC,MAAP,MAAmB,oBAAnB;;AAEA,IAAI,CAACC,OAAOC,mCAAZ,EAAiD;AAC/CD,SAAOC,mCAAP,GAA6C,YAAY;AACvD,WAAO,EAAEC,YAAF,EAAgBC,cAAhB,EAAP;AACD,GAFD;AAGD;;AAED,IAAI,CAACH,OAAOI,0CAAZ,EAAwD;AACtDJ,SAAOI,0CAAP,GAAoD,UAAUC,GAAV,EAAeC,KAAf,EAAsB;AAAA,gCACvCN,OAAOC,mCAAP,CAA2CI,GAA3C,CADuC;AAAA,QAChEH,QADgE,yBAChEA,QADgE;AAAA,QACtDC,UADsD,yBACtDA,UADsD;;AAGxE,WAAO;AACLD,gBAAUA,SAASK,MAAT,CAAgB;AAAA,eACxBD,SAASE,QAAQC,QAAjB,KAA8B,CAACD,QAAQE,UAAT,IAAuBF,QAAQE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CAArD,CADwB;AAAA,OAAhB,CADL;AAILF;AAJK,KAAP;AAMD,GATD;AAUD;;AAGD;AACA,SAASQ,wBAAT,CAAkCN,GAAlC,EAAuCO,WAAvC,EAAoD;AAClD,SAAOZ,OAAOI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;;AAED;;;;;IAIqBC,M;;AAInB;;;;;;AAMA,kBAAYR,GAAZ,EAAyBS,WAAzB,EAA+C;AAAA,YAAnCT,GAAmC;;AAAA,YAAtBS,WAAsB;;AAAA;;AAC7C,SAAKT,GAAL,GAAWA,IAAIU,OAAJ,CAAY,GAAZ,EAAiB,GAAjB,CAAX;AACA,SAAKD,WAAL,GAAmBA,WAAnB;AACA,QAAIT,IAAIW,QAAJ,CAAa,GAAb,CAAJ,EAAuB,KAAKC,IAAL,CAAU,yDAAV;AACxB;;AAED;;;;;6CACyBL,W,EAAa;AACpC,aAAOD,yBAAyB,KAAKN,GAA9B,EAAmCO,WAAnC,CAAP;AACD;;AAED;;;;gCACY;AACV,aAAOZ,OAAOC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;;AAED;;;;;;;;;;0BAOMa,c,EAAwBC,gB,EAA2B;AAAA,cAAnDD,cAAmD;;AAAA,cAA3BC,gBAA2B;;AACvD,aAAO,IAAIN,MAAJ,CAAc,KAAKR,GAAnB,SAA0Ba,cAA1B,EAA4CC,gBAA5C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;4BAeQC,Q,EAAiB;AAAA,cAAjBA,QAAiB;;AACvB,UAAMC,SAAS,IAAIR,MAAJ,CAAW,KAAKR,GAAhB,CAAf;AACAgB,aAAOC,UAAP,CAAkBF,QAAlB;AACA,aAAOC,MAAP;AACD;;AAED;;;;;;;;+BAKWD,O,EAAiB;AAAA,cAAjBA,OAAiB;;AAC1B,WAAKG,QAAL,GAAgBH,OAAhB;AACD;;AAED;;;;;;;;mCAKeI,e,EAAyB;AAAA,cAAzBA,eAAyB;;AACtCC,aAAOC,MAAP,CAAc,KAAKH,QAAnB,EAA6BC,eAA7B;AACD;;AAED;;;;;;;;;;8BAOUG,M,EAAgB;AAAA,cAAhBA,MAAgB;;AAAA,kCACO,KAAKC,wBAAL,CAA8BD,OAAOrB,KAArC,CADP;AAAA,UAClBJ,QADkB,yBAClBA,QADkB;AAAA,UACRC,UADQ,yBACRA,UADQ;;AAGxB,UAAID,SAAS2B,MAAT,KAAoB,CAAxB,EAA2B;AACzB,YAAIF,OAAOrB,KAAP,GAAeP,OAAO+B,KAA1B,EAAiC;AAC/B;AACAC,kBAAQC,GAAR,CAAY,4CAAZ,EAA0D;AACxD3B,iBAAKsB,OAAOtB,GAD4C;AAExD4B,qBAASN,OAAOM;AAFwC,WAA1D;AAID;AACD;AACD;;AAED,UAAI9B,UAAJ,EAAgB;AACdA,mBAAW+B,OAAX,CAAmB;AAAA,iBAAWC,QAAQR,MAAR,EAAgBA,OAAOP,OAAvB,CAAX;AAAA,SAAnB;AACD;;AAEDlB,eAASkC,IAAT,CAAc;AAAA,eAAW5B,QAAQ6B,MAAR,CAAeV,MAAf,MAA2B,KAAtC;AAAA,OAAd;AACD;;AAED;;;;;;;;;;;;wBAUEM,O,EACAK,Q,EAGA;AAAA,UAFAhC,KAEA,uEAFgBP,OAAOwC,IAEvB;AAAA,UADAC,OACA,uEADmBC,SACnB;;AAAA,cAJAR,OAIA;;AAAA,cAHAK,QAGA;;AAAA,cAFAhC,KAEA;;AAAA,cADAkC,OACA;;AACA,UAAIpB,UAAUkB,YAAYA,SAASlB,OAAnC;AACA,UAAIkB,QAAJ,EAAc;AACZ,eAAOA,SAASlB,OAAhB;AACD;;AAED,UAAIO,SAAS;AACXrB,eAAOA,KADI;AAEXD,aAAK,KAAKA,GAFC;AAGXS,qBAAa,KAAKA,WAHP;AAIX4B,kBAAU,IAAIC,IAAJ,EAJC;AAKXV,iBAASA,OALE;AAMXb,iBAASA,WAAW,KAAKG,QANd;AAOXe,kBAAUA,QAPC;AAQXM;AARW,OAAb;;AAWA,UAAIJ,OAAJ,EAAa;AACXb,iBAASF,OAAOC,MAAP,CAAcc,OAAd,EAAuBb,MAAvB,CAAT;AACD;;AAED,WAAKkB,SAAL,CAAelB,MAAf;AACA,aAAO,IAAP;AACD;;AAGD;;;;;;;;;;;0BAQMM,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOgD,KAAnC,EAA0C,EAAED,8BAAF,EAA1C,CAAP;AACD;;AAGD;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOiD,KAAnC,EAA0C,EAAEF,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;yBAQKb,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOwC,IAAnC,EAAyC,EAAEO,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;yBAQKb,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOkD,IAAnC,EAAyC,EAAEH,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAAwC;AAAA,UAA/BK,QAA+B;AAAA,UAAhBQ,cAAgB;;AAC5C,UAAIb,mBAAmBiB,KAAvB,EAA8B;AAC5BZ,iBAASa,KAAT,GAAiBlB,OAAjB;AACAA,kBAAaK,SAASa,KAAT,CAAeC,IAA5B,UAAqCd,SAASa,KAAT,CAAelB,OAApD;AACD;AACD,aAAO,KAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAO+B,KAAnC,EAA0C,EAAEgB,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOsD,KAAnC,EAA0C,EAAEP,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;0BAQMb,O,EAASK,Q,EAAUQ,c,EAAgB;AACvC,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOuD,KAAnC,EAA0C,EAAER,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;iCAQaS,K,EAAOjB,Q,EAAUQ,c,EAAgB;AAC5C;AACA;AACAS,cAAQzD,KAAK0D,OAAL,CAAaD,KAAb,EAAoB,EAAEE,OAAO,CAAT,EAApB,CAAR;AACA,aAAO,KAAKzB,GAAL,CAASuB,KAAT,EAAgBjB,QAAhB,EAA0BvC,OAAOiD,KAAjC,EAAwC,EAAEF,8BAAF,EAAkBY,gBAAlB,EAAxC,CAAP;AACD;;AAED;;;;;;;;;;;;+BASWC,O,EAASC,Q,EAAUtB,Q,EAAUQ,c,EAAgB;AACtDc,iBAAW9D,KAAK0D,OAAL,CAAaI,QAAb,EAAuB,EAAEH,OAAO,CAAT,EAAvB,CAAX;AACA,aAAO,KAAKzB,GAAL,CAAY2B,OAAZ,WAAyBC,QAAzB,EAAqCtB,QAArC,EAA+CvC,OAAOiD,KAAtD,EAA6D,EAAEF,8BAAF,EAAkBY,gBAAlB,EAA7D,CAAP;AACD;;AAED;;;;;;;;;;;4BAQQzB,O,EAASK,Q,EAAUQ,c,EAAgB;AACzC,aAAO,KAAKe,WAAL,CAAiB5B,OAAjB,EAA0BK,QAA1B,EAAoCQ,cAApC,CAAP;AACD;;AAED;;;;;;;;;;;gCAQYb,O,EAASK,Q,EAAUQ,c,EAAgB;AAC7C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOwC,IAAnC,EAAyC;AAC9CO,sCAD8C;AAE9CgB,gBAAQ,GAFsC;AAG9CJ;AAH8C,OAAzC,CAAP;AAKD;;AAED;;;;;;;;;;;iCAQazB,O,EAASK,Q,EAAUQ,c,EAAgB;AAC9C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOiD,KAAnC,EAA0C;AAC/CF,sCAD+C;AAE/CgB,gBAAQ,GAFuC;AAG/CJ;AAH+C,OAA1C,CAAP;AAKD;;AAED;;;;;;;;;;;yBAQKzB,O,EAASK,Q,EAAUQ,c,EAAgB;AACtC,aAAO,KAAKiB,QAAL,CAAc9B,OAAd,EAAuBK,QAAvB,EAAiCQ,cAAjC,CAAP;AACD;;AAED;;;;;;;;;;;6BAQSb,O,EAASK,Q,EAAUQ,c,EAAgB;AAC1C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOwC,IAAnC,EAAyC;AAC9CO,sCAD8C;AAE9CgB,gBAAQ,GAFsC;AAG9CJ;AAH8C,OAAzC,CAAP;AAKD;;AAED;;;;;;;;;;;8BAQUzB,O,EAASK,Q,EAAUQ,c,EAAgB;AAC3C,aAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,OAAOiD,KAAnC,EAA0C;AAC/CF,sCAD+C;AAE/CgB,gBAAQ,GAFuC;AAG/CJ;AAH+C,OAA1C,CAAP;AAKD;;AAED;;;;;;;;;;yBAOKzB,O,EAASK,Q,EAAUQ,c,EAAsC;AAAA,UAAtBxC,KAAsB,uEAAdP,OAAOiD,KAAO;;AAC5D,UAAIf,OAAJ,EAAa;AACX,aAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BhC,KAA5B,EAAmC,EAAEwC,8BAAF,EAAnC;AACD;;AAED,aAAOH,KAAKqB,GAAL,EAAP;AACD;;;6BAEQ/B,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAAA,cAA7Db,OAA6D;;AAAA,cAA5CK,QAA4C;;AAAA,cAAzBQ,cAAyB;;AACpE,aAAO,KAAKmB,IAAL,CAAUhC,OAAV,EAAmBK,QAAnB,EAA6BQ,cAA7B,EAA6C/C,OAAOwC,IAApD,CAAP;AACD;;AAED;;;;;;;;;;;;;;;4BAYQ0B,I,EAAMhC,O,EAAuE;AAAA,UAA9DK,QAA8D;AAAA,UAA/CQ,cAA+C;AAAA,UAA/BxC,KAA+B,uEAAvBP,OAAOiD,KAAgB;AAAA,UAATR,OAAS;;AACnF,UAAMwB,MAAMrB,KAAKqB,GAAL,EAAZ;;AAEA,UAAME,WAAWF,MAAMC,IAAvB;;AAEA,UAAIC,WAAW,IAAf,EAAqB;AACnB5B,iBAAS6B,YAAT,GAA2BD,QAA3B;AACD,OAFD,MAEO;AACL,YAAME,UAAUF,WAAW,IAAX,IAAmBG,KAAKC,KAAL,CAAWJ,WAAW,IAAtB,CAAnC;;AAEA5B,iBAAS6B,YAAT,SAA2BC,UAAaA,OAAb,cAA+B,EAA1D,KADWF,WAAYE,UAAU,IACjC;AACD;;AAED9B,eAASiC,MAAT,GAAkBL,QAAlB;AACA,WAAKlC,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BhC,KAA5B,eAAwCkC,OAAxC,IAAiDM,8BAAjD;AACD;;AAED;;;;;;gCAGYmB,I,EAAchC,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAAA,cAA3EmB,IAA2E;;AAAA,cAA7DhC,OAA6D;;AAAA,cAA5CK,QAA4C;;AAAA,cAAzBQ,cAAyB;;AACrF,aAAO,KAAK0B,OAAL,CAAaP,IAAb,EAAmBhC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsD/C,OAAOwC,IAA7D,CAAP;AACD;;AAED;;;;;;uCAGmB0B,I,EAAchC,O,EAAiBK,Q,EAAmBQ,c,EAAyB;AAAA,cAA3EmB,IAA2E;;AAAA,cAA7DhC,OAA6D;;AAAA,cAA5CK,QAA4C;;AAAA,cAAzBQ,cAAyB;;AAC5F,aAAO,KAAK0B,OAAL,CAAaP,IAAb,EAAmBhC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsD/C,OAAOwC,IAA7D,EAAmE;AACxEuB,gBAAQ,GADgE;AAExEJ;AAFwE,OAAnE,CAAP;AAID;;AAED;;;;;;;;;;;;;;;;;;;0BAgBMe,E,EAAmC;AAAA,UAA/BnC,QAA+B;AAAA,UAAhBQ,cAAgB;;AACvCR;AACEoC,sBAAcD,GAAGrB;AADnB,SAEKd,QAFL;AAIA,aAAO,KAAKN,GAAL,CAAS,OAAT,EAAkBM,QAAlB,EAA4BvC,OAAOgD,KAAnC,EAA0C,EAAED,8BAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;yBAkBK2B,E,EAAInC,Q,EAAUQ,c,EAAgB;AACjCR;AACEoC,sBAAcD,GAAGrB;AADnB,SAEKd,QAFL;AAIA,aAAO,KAAKN,GAAL,CAAS,MAAT,EAAiBM,QAAjB,EAA2BvC,OAAOgD,KAAlC,EAAyC,EAAED,8BAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;yBAkBK2B,E,EAAInC,Q,EAAUQ,c,EAAgB6B,Q,EAAU;AAC3C,UAAI,OAAOrC,QAAP,KAAoB,UAAxB,EAAoC;AAClCqC,mBAAWrC,QAAX;AACAA,mBAAWG,SAAX;AACD,OAHD,MAGO,IAAI,OAAOK,cAAP,KAA0B,UAA9B,EAA0C;AAC/C6B,mBAAW7B,cAAX;AACAA,yBAAiBL,SAAjB;AACD;;AAED,WAAKmC,KAAL,CAAWH,EAAX,EAAenC,QAAf,EAAyBQ,cAAzB;AACA6B;AACA,WAAKE,IAAL,CAAUJ,EAAV;AACD;;;;;;eA/ekB5D,M","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js b/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js index 1ebb69c56..d72d20ce1 100644 --- a/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js +++ b/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js @@ -47,7 +47,9 @@ export default class Logger { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js.map b/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js.map index ebfa7af9a..b6348cd5a 100644 --- a/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js.map +++ b/packages/nightingale-logger/lib-webpack-modern-browsers-dev/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-webpack-modern-browsers/index.js b/packages/nightingale-logger/lib-webpack-modern-browsers/index.js index efaf01de3..ecfe86117 100644 --- a/packages/nightingale-logger/lib-webpack-modern-browsers/index.js +++ b/packages/nightingale-logger/lib-webpack-modern-browsers/index.js @@ -42,7 +42,9 @@ export default class Logger { constructor(key, displayName) { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-webpack-modern-browsers/index.js.map b/packages/nightingale-logger/lib-webpack-modern-browsers/index.js.map index 7a9bd866a..89f1817fb 100644 --- a/packages/nightingale-logger/lib-webpack-modern-browsers/index.js.map +++ b/packages/nightingale-logger/lib-webpack-modern-browsers/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":";;AAAA,OAAOA,IAAP,MAAiB,MAAjB;AACA,OAAOC,MAAP,MAAmB,oBAAnB;;AAEA,IAAI,CAACC,OAAOC,mCAAZ,EAAiD;AAC/CD,SAAOC,mCAAP,GAA6C,YAAY;AACvD,WAAO,EAAEC,YAAF,EAAgBC,cAAhB,EAAP;AACD,GAFD;AAGD;;AAED,IAAI,CAACH,OAAOI,0CAAZ,EAAwD;AACtDJ,SAAOI,0CAAP,GAAoD,UAAUC,GAAV,EAAeC,KAAf,EAAsB;AAAA,gCACvCN,OAAOC,mCAAP,CAA2CI,GAA3C,CADuC;AAAA,QAChEH,QADgE,yBAChEA,QADgE;AAAA,QACtDC,UADsD,yBACtDA,UADsD;;AAGxE,WAAO;AACLD,gBAAUA,SAASK,MAAT,CAAgBC,WACxBF,SAASE,QAAQC,QAAjB,KAA8B,CAACD,QAAQE,UAAT,IAAuBF,QAAQE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CAArD,CADQ,CADL;AAILF;AAJK,KAAP;AAMD,GATD;AAUD;;AAGD;AACA,SAASQ,wBAAT,CAAkCN,GAAlC,EAAuCO,WAAvC,EAAoD;AAClD,SAAOZ,OAAOI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;;AAED;;;;AAIA,eAAe,MAAMC,MAAN,CAAa;;AAI1B;;;;;;AAMAC,cAAYT,GAAZ,EAAyBU,WAAzB,EAA+C;AAC7C,SAAKV,GAAL,GAAWA,IAAIW,OAAJ,CAAY,GAAZ,EAAiB,GAAjB,CAAX;AACA,SAAKD,WAAL,GAAmBA,WAAnB;AACA,QAAIV,IAAIY,QAAJ,CAAa,GAAb,CAAJ,EAAuB,KAAKC,IAAL,CAAU,yDAAV;AACxB;;AAED;AACAC,2BAAyBP,WAAzB,EAAsC;AACpC,WAAOD,yBAAyB,KAAKN,GAA9B,EAAmCO,WAAnC,CAAP;AACD;;AAED;AACAQ,cAAY;AACV,WAAOpB,OAAOC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;;AAED;;;;;;;AAOAgB,QAAMC,cAAN,EAA8BC,gBAA9B,EAAyD;AACvD,WAAO,IAAIV,MAAJ,CAAY,IAAE,KAAKR,GAAI,MAAGiB,cAAe,GAAzC,EAA4CC,gBAA5C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;AAeAC,UAAQA,OAAR,EAAyB;AACvB,QAAMC,SAAS,IAAIZ,MAAJ,CAAW,KAAKR,GAAhB,CAAf;AACAoB,WAAOC,UAAP,CAAkBF,OAAlB;AACA,WAAOC,MAAP;AACD;;AAED;;;;;AAKAC,aAAWF,OAAX,EAA4B;AAC1B,SAAKG,QAAL,GAAgBH,OAAhB;AACD;;AAED;;;;;AAKAI,iBAAeC,eAAf,EAAwC;AACtCC,WAAOC,MAAP,CAAc,KAAKJ,QAAnB,EAA6BE,eAA7B;AACD;;AAED;;;;;;;AAOAG,YAAUC,MAAV,EAA0B;AAAA,gCACO,KAAKd,wBAAL,CAA8Bc,OAAO3B,KAArC,CADP;AAAA,QAClBJ,QADkB,yBAClBA,QADkB;AAAA,QACRC,UADQ,yBACRA,UADQ;;AAGxB,QAAID,SAASgC,MAAT,KAAoB,CAAxB,EAA2B;AACzB,UAAID,OAAO3B,KAAP,GAAeP,OAAOoC,KAA1B,EAAiC;AAC/B;AACAC,gBAAQC,GAAR,CAAY,4CAAZ,EAA0D;AACxDhC,eAAK4B,OAAO5B,GAD4C;AAExDiC,mBAASL,OAAOK;AAFwC,SAA1D;AAID;AACD;AACD;;AAED,QAAInC,UAAJ,EAAgB;AACdA,iBAAWoC,OAAX,CAAmBC,WAAWA,QAAQP,MAAR,EAAgBA,OAAOT,OAAvB,CAA9B;AACD;;AAEDtB,aAASuC,IAAT,CAAcjC,WAAWA,QAAQkC,MAAR,CAAeT,MAAf,MAA2B,KAApD;AACD;;AAED;;;;;;;;;AASAI,MACEC,OADF,EAEEK,QAFF,EAKE;AAAA,QAFArC,KAEA,uEAFgBP,OAAO6C,IAEvB;AAAA,QADAC,OACA,uEADmBC,SACnB;;AACA,QAAItB,UAAUmB,YAAYA,SAASnB,OAAnC;AACA,QAAImB,QAAJ,EAAc;AACZ,aAAOA,SAASnB,OAAhB;AACD;;AAED,QAAIS,SAAS;AACX3B,aAAOA,KADI;AAEXD,WAAK,KAAKA,GAFC;AAGXU,mBAAa,KAAKA,WAHP;AAIXgC,gBAAU,IAAIC,IAAJ,EAJC;AAKXV,eAASA,OALE;AAMXd,eAASA,WAAW,KAAKG,QANd;AAOXgB,gBAAUA,QAPC;AAQXM;AARW,KAAb;;AAWA,QAAIJ,OAAJ,EAAa;AACXZ,eAASH,OAAOC,MAAP,CAAcc,OAAd,EAAuBZ,MAAvB,CAAT;AACD;;AAED,SAAKD,SAAL,CAAeC,MAAf;AACA,WAAO,IAAP;AACD;;AAGD;;;;;;;;AAQAiB,QAAMZ,OAAN,EAAeK,QAAf,EAAyBQ,cAAzB,EAAyC;AACvC,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOqD,KAAnC,EAA0C,EAAED,cAAF,EAA1C,CAAP;AACD;;AAGD;;;;;;;;AAQAE,QAAMf,OAAN,EAAeK,QAAf,EAAyBQ,cAAzB,EAAyC;AACvC,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOuD,KAAnC,EAA0C,EAAEH,cAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;AAQAI,OAAKjB,OAAL,EAAcK,QAAd,EAAwBQ,cAAxB,EAAwC;AACtC,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAO6C,IAAnC,EAAyC,EAAEO,cAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;AAQAjC,OAAKoB,OAAL,EAAcK,QAAd,EAAwBQ,cAAxB,EAAwC;AACtC,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOyD,IAAnC,EAAyC,EAAEL,cAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;AAQAM,QAAMnB,OAAN,EAA8C;AAAA,QAA/BK,QAA+B;AAAA,QAAhBQ,cAAgB;;AAC5C,QAAIb,mBAAmBoB,KAAvB,EAA8B;AAC5Bf,eAASc,KAAT,GAAiBnB,OAAjB;AACAA,gBAAW,IAAEK,SAASc,KAAT,CAAeE,IAAK,OAAIhB,SAASc,KAAT,CAAenB,OAAQ,GAA5D;AACD;AACD,WAAO,KAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOoC,KAAnC,EAA0C,EAAEgB,cAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;AAQAS,QAAMtB,OAAN,EAAeK,QAAf,EAAyBQ,cAAzB,EAAyC;AACvC,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAO8D,KAAnC,EAA0C,EAAEV,cAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;AAQAW,QAAMxB,OAAN,EAAeK,QAAf,EAAyBQ,cAAzB,EAAyC;AACvC,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOgE,KAAnC,EAA0C,EAAEZ,cAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;AAQAa,eAAaC,KAAb,EAAoBtB,QAApB,EAA8BQ,cAA9B,EAA8C;AAC5C;AACA;AACAc,YAAQnE,KAAKoE,OAAL,CAAaD,KAAb,EAAoB,EAAEE,OAAO,CAAT,EAApB,CAAR;AACA,WAAO,KAAK9B,GAAL,CAAS4B,KAAT,EAAgBtB,QAAhB,EAA0B5C,OAAOuD,KAAjC,EAAwC,EAAEH,cAAF,EAAkBiB,gBAAlB,EAAxC,CAAP;AACD;;AAED;;;;;;;;;AASAC,aAAWC,OAAX,EAAoBC,QAApB,EAA8B5B,QAA9B,EAAwCQ,cAAxC,EAAwD;AACtDoB,eAAWzE,KAAKoE,OAAL,CAAaK,QAAb,EAAuB,EAAEJ,OAAO,CAAT,EAAvB,CAAX;AACA,WAAO,KAAK9B,GAAL,CAAU,IAAEiC,OAAQ,QAAKC,QAAS,GAAlC,EAAqC5B,QAArC,EAA+C5C,OAAOuD,KAAtD,EAA6D,EAAEH,cAAF,EAAkBiB,gBAAlB,EAA7D,CAAP;AACD;;AAED;;;;;;;;AAQAI,UAAQlC,OAAR,EAAiBK,QAAjB,EAA2BQ,cAA3B,EAA2C;AACzC,WAAO,KAAKsB,WAAL,CAAiBnC,OAAjB,EAA0BK,QAA1B,EAAoCQ,cAApC,CAAP;AACD;;AAED;;;;;;;;AAQAsB,cAAYnC,OAAZ,EAAqBK,QAArB,EAA+BQ,cAA/B,EAA+C;AAC7C,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAO6C,IAAnC,EAAyC;AAC9CO,oBAD8C;AAE9CuB,cAAQ,GAFsC;AAG9CN;AAH8C,KAAzC,CAAP;AAKD;;AAED;;;;;;;;AAQAO,eAAarC,OAAb,EAAsBK,QAAtB,EAAgCQ,cAAhC,EAAgD;AAC9C,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOuD,KAAnC,EAA0C;AAC/CH,oBAD+C;AAE/CuB,cAAQ,GAFuC;AAG/CN;AAH+C,KAA1C,CAAP;AAKD;;AAED;;;;;;;;AAQAQ,OAAKtC,OAAL,EAAcK,QAAd,EAAwBQ,cAAxB,EAAwC;AACtC,WAAO,KAAK0B,QAAL,CAAcvC,OAAd,EAAuBK,QAAvB,EAAiCQ,cAAjC,CAAP;AACD;;AAED;;;;;;;;AAQA0B,WAASvC,OAAT,EAAkBK,QAAlB,EAA4BQ,cAA5B,EAA4C;AAC1C,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAO6C,IAAnC,EAAyC;AAC9CO,oBAD8C;AAE9CuB,cAAQ,GAFsC;AAG9CN;AAH8C,KAAzC,CAAP;AAKD;;AAED;;;;;;;;AAQAU,YAAUxC,OAAV,EAAmBK,QAAnB,EAA6BQ,cAA7B,EAA6C;AAC3C,WAAO,KAAKd,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4B5C,OAAOuD,KAAnC,EAA0C;AAC/CH,oBAD+C;AAE/CuB,cAAQ,GAFuC;AAG/CN;AAH+C,KAA1C,CAAP;AAKD;;AAED;;;;;;;AAOAW,OAAKzC,OAAL,EAAcK,QAAd,EAAwBQ,cAAxB,EAA8D;AAAA,QAAtB7C,KAAsB,uEAAdP,OAAOuD,KAAO;;AAC5D,QAAIhB,OAAJ,EAAa;AACX,WAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BrC,KAA5B,EAAmC,EAAE6C,cAAF,EAAnC;AACD;;AAED,WAAOH,KAAKgC,GAAL,EAAP;AACD;;AAEDC,WAAS3C,OAAT,EAA0BK,QAA1B,EAA6CQ,cAA7C,EAAsE;AACpE,WAAO,KAAK4B,IAAL,CAAUzC,OAAV,EAAmBK,QAAnB,EAA6BQ,cAA7B,EAA6CpD,OAAO6C,IAApD,CAAP;AACD;;AAED;;;;;;;;;;;;AAYAsC,UAAQH,IAAR,EAAczC,OAAd,EAAqF;AAAA,QAA9DK,QAA8D;AAAA,QAA/CQ,cAA+C;AAAA,QAA/B7C,KAA+B,uEAAvBP,OAAOuD,KAAgB;AAAA,QAATT,OAAS;;AACnF,QAAMmC,MAAMhC,KAAKgC,GAAL,EAAZ;;AAEA,QAAMG,WAAWH,MAAMD,IAAvB;;AAEA,QAAII,WAAW,IAAf,EAAqB;AACnBxC,eAASyC,YAAT,GAAyB,IAAED,QAAS,KAApC;AACD,KAFD,MAEO;AACL,UAAME,UAAUF,WAAW,IAAX,IAAmBG,KAAKC,KAAL,CAAWJ,WAAW,IAAtB,CAAnC;;AAEAxC,eAASyC,YAAT,GAAyB,IAAEC,UAAW,IAAEA,OAAQ,SAArB,GAA+B,EAAG,KADlDF,WAAYE,UAAU,IACiC,KAAlE;AACD;;AAED1C,aAAS6C,MAAT,GAAkBL,QAAlB;AACA,SAAK9C,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BrC,KAA5B,eAAwCuC,OAAxC,IAAiDM,cAAjD;AACD;;AAED;;;AAGAsC,cAAYV,IAAZ,EAA0BzC,OAA1B,EAA2CK,QAA3C,EAA8DQ,cAA9D,EAAuF;AACrF,WAAO,KAAK+B,OAAL,CAAaH,IAAb,EAAmBzC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsDpD,OAAO6C,IAA7D,CAAP;AACD;;AAED;;;AAGA8C,qBAAmBX,IAAnB,EAAiCzC,OAAjC,EAAkDK,QAAlD,EAAqEQ,cAArE,EAA8F;AAC5F,WAAO,KAAK+B,OAAL,CAAaH,IAAb,EAAmBzC,OAAnB,EAA4BK,QAA5B,EAAsCQ,cAAtC,EAAsDpD,OAAO6C,IAA7D,EAAmE;AACxE8B,cAAQ,GADgE;AAExEN;AAFwE,KAAnE,CAAP;AAID;;AAED;;;;;;;;;;;;;;;;AAgBAuB,QAAMC,EAAN,EAAyC;AAAA,QAA/BjD,QAA+B;AAAA,QAAhBQ,cAAgB;;AACvCR;AACEkD,oBAAcD,GAAGjC;AADnB,OAEKhB,QAFL;AAIA,WAAO,KAAKN,GAAL,CAAS,OAAT,EAAkBM,QAAlB,EAA4B5C,OAAOqD,KAAnC,EAA0C,EAAED,cAAF,EAA1C,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;AAkBA2C,OAAKF,EAAL,EAASjD,QAAT,EAAmBQ,cAAnB,EAAmC;AACjCR;AACEkD,oBAAcD,GAAGjC;AADnB,OAEKhB,QAFL;AAIA,WAAO,KAAKN,GAAL,CAAS,MAAT,EAAiBM,QAAjB,EAA2B5C,OAAOqD,KAAlC,EAAyC,EAAED,cAAF,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;AAkBA4C,OAAKH,EAAL,EAASjD,QAAT,EAAmBQ,cAAnB,EAAmC6C,QAAnC,EAA6C;AAC3C,QAAI,OAAOrD,QAAP,KAAoB,UAAxB,EAAoC;AAClCqD,iBAAWrD,QAAX;AACAA,iBAAWG,SAAX;AACD,KAHD,MAGO,IAAI,OAAOK,cAAP,KAA0B,UAA9B,EAA0C;AAC/C6C,iBAAW7C,cAAX;AACAA,uBAAiBL,SAAjB;AACD;;AAED,SAAK6C,KAAL,CAAWC,EAAX,EAAejD,QAAf,EAAyBQ,cAAzB;AACA6C;AACA,SAAKF,IAAL,CAAUF,EAAV;AACD;AA/eyB","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","constructor","displayName","replace","includes","warn","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendsContext","extendedContext","Object","assign","addRecord","record","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","info","WARN","error","Error","name","alert","ALERT","fatal","FATAL","inspectValue","value","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","callback"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/lib-webpack/index.js b/packages/nightingale-logger/lib-webpack/index.js index 7ee1575c9..fe1ab626f 100644 --- a/packages/nightingale-logger/lib-webpack/index.js +++ b/packages/nightingale-logger/lib-webpack/index.js @@ -51,7 +51,9 @@ var Logger = function () { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key: key, displayName: displayName }); + } } /** @private */ diff --git a/packages/nightingale-logger/lib-webpack/index.js.map b/packages/nightingale-logger/lib-webpack/index.js.map index 6e51a2ede..af60c244d 100644 --- a/packages/nightingale-logger/lib-webpack/index.js.map +++ b/packages/nightingale-logger/lib-webpack/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`');\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["util","levels","global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","replace","includes","warn","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","Object","assign","record","getHandlersAndProcessors","length","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","datetime","Date","extra","addRecord","metadataStyles","TRACE","DEBUG","WARN","Error","error","name","ALERT","FATAL","value","inspect","depth","styles","varName","varValue","infoSuccess","symbol","infoFail","now","time","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","functionName","callback","enter","exit"],"mappings":"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","file":"index.js","sourcesContent":["import util from 'util';\nimport levels from 'nightingale-levels';\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function () {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = function (key, level) {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(handler => (\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key))\n )),\n processors,\n };\n };\n}\n\n\n/** @private */\nfunction getConfigForLoggerRecord(key, recordLevel) {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key.replace('.', ':');\n this.displayName = displayName;\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel) {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig() {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n *\n * @param {string} childSuffixKey\n * @param {string} [childDisplayName]\n * @returns {Logger}\n */\n child(childSuffixKey: string, childDisplayName: ?string) {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n * @param {Object} context\n * @returns {Logger}\n */\n context(context: Object) {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n *\n * @param {Object} extendedContext\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n *\n * @param {Object} record\n */\n addRecord(record: Object) {\n let { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n *\n * @param {string} message\n * @param {Object} metadata\n * @param {int} [level]\n * @param {Object} [options]\n * @return {Logger}\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n let context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level: level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message: message,\n context: context || this._context,\n metadata: metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n return this;\n }\n\n\n /**\n * Log a trace message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n trace(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n\n /**\n * Log a debug message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debug(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Log an info message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n info(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n warn(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @param {string|Error} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n error(message, metadata = {}, metadataStyles) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n return this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an alert message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n alert(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fatal(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n *\n * @param {*} value\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectValue(value, metadata, metadataStyles) {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n return this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n\n /**\n * Log a debugged var\n *\n * @param {string} varName\n * @param {*} varValue\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n inspectVar(varName, varValue, metadata, metadataStyles) {\n varValue = util.inspect(varValue, { depth: 6 });\n return this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, { metadataStyles, styles: ['cyan'] });\n }\n\n /**\n * Alias for infoSuccess\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n success(message, metadata, metadataStyles) {\n return this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugSuccess(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n fail(message, metadata, metadataStyles) {\n return this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n infoFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n *\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n debugFail(message, metadata, metadataStyles) {\n return this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @param {string} [message]\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n * @returns {*} time to pass to timeEnd\n */\n time(message, metadata, metadataStyles, level = levels.DEBUG) {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n *\n * @param {number=} time return of previous call to time()\n * @param {string} message\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {number} [level = levels.DEBUG]\n */\n timeEnd(time, message, metadata = {}, metadataStyles, level = levels.DEBUG, options) {\n const now = Date.now();\n\n const diffTime = now - time;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - (seconds * 1000);\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n return this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n enter(fn, metadata = {}, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n *\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @return {Logger}\n */\n exit(fn, metadata, metadataStyles) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n return this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(fn, metadata, metadataStyles, callback) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"]} \ No newline at end of file diff --git a/packages/nightingale-logger/src/index.js b/packages/nightingale-logger/src/index.js index 5031cf7f9..38c60ab83 100644 --- a/packages/nightingale-logger/src/index.js +++ b/packages/nightingale-logger/src/index.js @@ -43,7 +43,9 @@ export default class Logger { constructor(key: string, displayName: ?string) { this.key = key.replace('.', ':'); this.displayName = displayName; - if (key.includes('.')) this.warn('nightingale: `.` in key is deprecated, replace with `:`'); + if (key.includes('.')) { + this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName }); + } } /** @private */