From c1fda3e5686f4c86f96d2cb2581239d2394bcf39 Mon Sep 17 00:00:00 2001 From: Christophe Hurpeau Date: Sat, 27 Nov 2021 16:01:16 +0100 Subject: [PATCH] feat(nightingale-logger): support passing Error to any of the basic methods --- .../nightingale_logger_src.Logger.html | 40 ++++----- .../dist/index-browser-dev.cjs.js | 83 +++++++++--------- .../dist/index-browser-dev.cjs.js.map | 2 +- .../dist/index-browser-dev.es.js | 83 +++++++++--------- .../dist/index-browser-dev.es.js.map | 2 +- .../dist/index-browser.cjs.js | 83 +++++++++--------- .../dist/index-browser.cjs.js.map | 2 +- .../dist/index-browser.es.js | 83 +++++++++--------- .../dist/index-browser.es.js.map | 2 +- .../dist/index-browsermodern-dev.es.js | 82 +++++++++--------- .../dist/index-browsermodern-dev.es.js.map | 2 +- .../dist/index-browsermodern.es.js | 82 +++++++++--------- .../dist/index-browsermodern.es.js.map | 2 +- .../dist/index-node12-dev.cjs.js | 82 +++++++++--------- .../dist/index-node12-dev.cjs.js.map | 2 +- .../dist/index-node12-dev.mjs | 82 +++++++++--------- .../dist/index-node12-dev.mjs.map | 2 +- .../dist/index-node12.cjs.js | 82 +++++++++--------- .../dist/index-node12.cjs.js.map | 2 +- .../nightingale-logger/dist/index-node12.mjs | 82 +++++++++--------- .../dist/index-node12.mjs.map | 2 +- packages/nightingale-logger/dist/index.d.ts | 26 +++--- .../nightingale-logger/dist/index.d.ts.map | 2 +- packages/nightingale-logger/src/index.test.ts | 18 ++++ packages/nightingale-logger/src/index.ts | 86 ++++++++++--------- 25 files changed, 519 insertions(+), 497 deletions(-) diff --git a/docs/classes/nightingale_logger_src.Logger.html b/docs/classes/nightingale_logger_src.Logger.html index 0a406c468..57acaf09b 100644 --- a/docs/classes/nightingale_logger_src.Logger.html +++ b/docs/classes/nightingale_logger_src.Logger.html @@ -6,49 +6,49 @@

Parameters

Returns Logger

Properties

Optional Readonly displayName

displayName?: string

Readonly key

key: string

Methods

addRecord

  • addRecord<T>(record: Readonly<LogRecord<T>>): void

alert

  • alert<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

alert

  • alert<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

child

  • child(childSuffixKey: string, childDisplayName?: string): Logger

child

  • child(childSuffixKey: string, childDisplayName?: string): Logger

context

  • context(context: Record<string, unknown>): Logger
  • Create a new Logger with the same key a this attached context

    example
    const loggerMyService = new Logger('app:myService');
    function someAction(arg1) {
    const logger = loggerMyService.context({ arg1 });
    logger.enter(someAction);
    // do stuff
    logger.info('info');
    // do stuff
    logger.exit(someAction);
    }
    -

    Parameters

    • context: Record<string, unknown>

    Returns Logger

critical

  • critical<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

critical

  • critical<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

debug

  • debug<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

debug

  • debug<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

debugFail

  • debugFail<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

debugFail

  • debugFail<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

debugSuccess

  • debugSuccess<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

debugSuccess

  • debugSuccess<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

enter

  • enter<T, Fn>(fn: Fn, metadata?: T, metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>): void
  • Log an enter in a function

    example
    class A {
    method(arg1) {
    logger.enter(method, { arg1 });
    // Do your stuff
    }
    }
    -

    Type parameters

    • T: Metadata

    • Fn: (...args: unknown[]) => unknown

    Parameters

    • fn: Fn
    • Optional metadata: T
    • Optional metadataStyles: MetadataStyles<T & ExtendedFunctionNameMetadata>

    Returns void

error

  • error<T>(message: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

error

  • error<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void
  • Log an error message

    example
    const logger = new Logger('something');
    try {
    throw new Error('Always throws here');
    } catch (error) {
    logger.error('caught error', { error });
    }
    -

    Type parameters

    Parameters

    • message: string | Error
    • Optional metadata: T
    • Optional metadataStyles: MetadataStyles<T>

    Returns void

exit

  • exit<T, Fn>(fn: Fn, metadata?: T, metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>): void

exit

  • exit<T, Fn>(fn: Fn, metadata?: T, metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>): void
  • Log an exit in a function

    example
    const logger = new Logger('myNamespace:A');
    class A {
    method(arg1) {
    // Do your stuff
    logger.exit(method, { arg1 });
    }
    }

    Type parameters

    • T: Metadata

    • Fn: (...args: unknown[]) => unknown

    Parameters

    • fn: Fn
    • Optional metadata: T
    • Optional metadataStyles: MetadataStyles<T & ExtendedFunctionNameMetadata>

    Returns void

extendsContext

  • extendsContext(extendedContext: Record<string, unknown>): void

fail

  • fail<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

fail

  • fail<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

fatal

  • fatal<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

fatal

  • fatal<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void
  • Log a fatal message

    example
    const logger = new Logger('something');
    try {
    throw new Error('Always throws here');
    } catch (error) {
    logger.error('caught error', { error });
    process.exit(1);
    }
    -

    Type parameters

    Parameters

    • message: string
    • Optional metadata: T
    • Optional metadataStyles: MetadataStyles<T>

    Returns void

getContextObject

  • getContextObject(): Readonly<Record<string, unknown>>

getContextObject

  • getContextObject(): Readonly<Record<string, unknown>>

info

  • info<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

info

  • info<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

infoFail

  • infoFail<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

infoFail

  • infoFail<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

infoSuccess

  • infoSuccess<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

infoSuccess

  • infoSuccess<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

infoSuccessTimeEnd

  • infoSuccessTimeEnd<T>(time: number, message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

inspectVar

  • inspectVar<T>(varName: string, varValue: unknown, metadata?: T, metadataStyles?: MetadataStyles<T>): void

log

  • log<T>(message: string, metadata?: T, level?: Level, options?: Options<T>): void

log

  • log<T>(messageOrError: string | Error, metadata?: T, level?: Level, options?: Options<T>): void

notice

  • notice<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

notice

  • notice<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

setContext

  • setContext(context: Record<string, unknown>): void

setContext

  • setContext(context: Record<string, unknown>): void

success

  • success<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void
  • @@ -73,11 +73,11 @@ was called and when the respective time method was called, then logs out the difference and deletes the original record

    -

    Type parameters

    Parameters

    • startTime: number
    • message: string
    • Optional metadata: T
    • Optional metadataStyles: MetadataStyles<T>
    • Optional level: number
    • Optional options: Options<T>

    Returns void

trace

  • trace<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

trace

  • trace<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

warn

  • warn<T>(message: string, metadata?: T, metadataStyles?: MetadataStyles<T>): void

warn

  • warn<T>(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles<T>): void

wrap

  • wrap<Fn>(fn: Fn, callback: () => void): void
  • wrap<T, Fn>(fn: Fn, metadata: T, callback: () => void): void
  • wrap<T, Fn>(fn: Fn, metadata: T, metadataStyles: MetadataStyles<T>, callback: () => void): void

wrap

  • wrap<Fn>(fn: Fn, callback: () => void): void
  • wrap<T, Fn>(fn: Fn, metadata: T, callback: () => void): void
  • wrap<T, Fn>(fn: Fn, metadata: T, metadataStyles: MetadataStyles<T>, callback: () => void): void
  • Wrap around a function to log enter and exit of a function

    example
    const logger = new Logger('myNamespace:A');
    class A {
    method() {
    logger.wrap(method, () => {
    // Do your stuff
    });
    }
    }
    diff --git a/packages/nightingale-logger/dist/index-browser-dev.cjs.js b/packages/nightingale-logger/dist/index-browser-dev.cjs.js index fa82b8172..ab077f93d 100644 --- a/packages/nightingale-logger/dist/index-browser-dev.cjs.js +++ b/packages/nightingale-logger/dist/index-browser-dev.cjs.js @@ -38,6 +38,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -170,15 +174,21 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.log = function log(message, metadata, level, options) { + _proto.log = function log(messageOrError, metadata, level, options) { if (level === void 0) { level = nightingaleLevels.Level.INFO; } - var context = metadata == null ? void 0 : metadata.context; + var isMessageError = isError(messageOrError); + var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? _extends__default({}, metadata, { + error: messageOrError + }) : metadata; + var context = extendedMetadata == null ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } var record = _extends__default({ @@ -188,7 +198,7 @@ var Logger = /*#__PURE__*/function () { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {} }, options); @@ -199,8 +209,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.trace = function trace(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.TRACE, { + _proto.trace = function trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, { metadataStyles }); } @@ -209,8 +219,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debug = function debug(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + _proto.debug = function debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles }); } @@ -219,8 +229,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.notice = function notice(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.NOTICE, { + _proto.notice = function notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, { metadataStyles }); } @@ -229,8 +239,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.info = function info(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + _proto.info = function info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles }); } @@ -239,8 +249,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.warn = function warn(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.WARN, { + _proto.warn = function warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, { metadataStyles }); } @@ -259,29 +269,18 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.error = function error(message, metadata, metadataStyles) { - if (message instanceof Error) { - var extendedMetadata = _extends__default({}, metadata, { - error: message - }); - - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } + _proto.error = function error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ ; - _proto.critical = function critical(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.CRITICAL, { + _proto.critical = function critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, { metadataStyles }); } @@ -300,8 +299,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fatal = function fatal(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.FATAL, { + _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, { metadataStyles }); } @@ -310,8 +309,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.alert = function alert(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.ALERT, { + _proto.alert = function alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, { metadataStyles }); } @@ -368,16 +367,16 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fail = function fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + _proto.fail = function fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ ; - _proto.infoFail = function infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -388,8 +387,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debugFail = function debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-browser-dev.cjs.js.map b/packages/nightingale-logger/dist/index-browser-dev.cjs.js.map index 6840abdc6..87a754200 100644 --- a/packages/nightingale-logger/dist/index-browser-dev.cjs.js.map +++ b/packages/nightingale-logger/dist/index-browser-dev.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"index-browser-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-browser-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-browser-dev.es.js b/packages/nightingale-logger/dist/index-browser-dev.es.js index d023b4881..a7c3dcc73 100644 --- a/packages/nightingale-logger/dist/index-browser-dev.es.js +++ b/packages/nightingale-logger/dist/index-browser-dev.es.js @@ -31,6 +31,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -163,15 +167,21 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.log = function log(message, metadata, level, options) { + _proto.log = function log(messageOrError, metadata, level, options) { if (level === void 0) { level = Level.INFO; } - var context = metadata == null ? void 0 : metadata.context; + var isMessageError = isError(messageOrError); + var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? _extends({}, metadata, { + error: messageOrError + }) : metadata; + var context = extendedMetadata == null ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } var record = _extends({ @@ -181,7 +191,7 @@ var Logger = /*#__PURE__*/function () { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {} }, options); @@ -192,8 +202,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.trace = function trace(message, metadata, metadataStyles) { - this.log(message, metadata, Level.TRACE, { + _proto.trace = function trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } @@ -202,8 +212,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debug = function debug(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + _proto.debug = function debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } @@ -212,8 +222,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.notice = function notice(message, metadata, metadataStyles) { - this.log(message, metadata, Level.NOTICE, { + _proto.notice = function notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } @@ -222,8 +232,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.info = function info(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + _proto.info = function info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } @@ -232,8 +242,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.warn = function warn(message, metadata, metadataStyles) { - this.log(message, metadata, Level.WARN, { + _proto.warn = function warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } @@ -252,29 +262,18 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.error = function error(message, metadata, metadataStyles) { - if (message instanceof Error) { - var extendedMetadata = _extends({}, metadata, { - error: message - }); - - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, Level.ERROR, { - metadataStyles - }); - } + _proto.error = function error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ ; - _proto.critical = function critical(message, metadata, metadataStyles) { - this.log(message, metadata, Level.CRITICAL, { + _proto.critical = function critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } @@ -293,8 +292,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fatal = function fatal(message, metadata, metadataStyles) { - this.log(message, metadata, Level.FATAL, { + _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } @@ -303,8 +302,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.alert = function alert(message, metadata, metadataStyles) { - this.log(message, metadata, Level.ALERT, { + _proto.alert = function alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } @@ -361,16 +360,16 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fail = function fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + _proto.fail = function fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ ; - _proto.infoFail = function infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -381,8 +380,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debugFail = function debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-browser-dev.es.js.map b/packages/nightingale-logger/dist/index-browser-dev.es.js.map index 601b42180..10d7b97eb 100644 --- a/packages/nightingale-logger/dist/index-browser-dev.es.js.map +++ b/packages/nightingale-logger/dist/index-browser-dev.es.js.map @@ -1 +1 @@ -{"version":3,"file":"index-browser-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-browser-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":";;;;AA4DA,IAAI,CAACA,MAAM,CAACC,mCAAZ,EAAiD;AAC/CD,EAAAA,MAAM,CAACC,mCAAP,GAA6C;AAAA,WAA6B;AACxEC,MAAAA,QAAQ,EAAE,EAD8D;AAExEC,MAAAA,UAAU,EAAE;AAF4D,KAA7B;AAAA,GAA7C;AAID;;AAED,IAAI,CAACH,MAAM,CAACI,0CAAZ,EAAwD;AACtDJ,EAAAA,MAAM,CAACI,0CAAP,GAAoD,UAClDC,GADkD,EAElDC,KAFkD,EAGzB;AACzB,gCACEN,MAAM,CAACC,mCAAP,CAA2CI,GAA3C,CADF;AAAA,QAAQH,QAAR,yBAAQA,QAAR;AAAA,QAAkBC,UAAlB,yBAAkBA,UAAlB;;AAGA,WAAO;AACLD,MAAAA,QAAQ,EAAEA,QAAQ,CAACK,MAAT,CACR,UAACC,OAAD;AAAA,eACEF,KAAK,IAAIE,OAAO,CAACC,QAAjB,KACC,CAACD,OAAO,CAACE,UAAT,IAAuBF,OAAO,CAACE,UAAR,CAAmBJ,KAAnB,EAA0BD,GAA1B,CADxB,CADF;AAAA,OADQ,CADL;AAMLF,MAAAA;AANK,KAAP;AAQD,GAfD;AAgBD;AAED;;;AACA,SAASQ,wBAAT,CACEN,GADF,EAEEO,WAFF,EAGwB;AACtB,SAAOZ,MAAM,CAACI,0CAAP,CAAkDC,GAAlD,EAAuDO,WAAvD,CAAP;AACD;;AAED,SAASC,OAAT,CAAiBC,cAAjB,EAA0E;AACxE,SAAOA,cAAc,YAAYC,KAAjC;AACD;AAED;AACA;AACA;AACA;;;IACaC,MAAb;AAOE;AACF;AACA;AACA;AACA;AACA;AACE,kBAAYX,GAAZ,EAAyBY,WAAzB,EAA+C;AAC7C,SAAKZ,GAAL,GAAWA,GAAX;AACA,SAAKY,WAAL,GAAmBA,WAAnB;;AAEA,QAAmBZ,GAAG,CAACa,QAAJ,CAAa,GAAb,CAAnB,EAAsC;AACpC,YAAM,IAAIH,KAAJ,CACH,6EAA4EV,GAAI,GAD7E,CAAN;AAGD;AACF;AAED;;;AAxBF;;AAAA,SAyBYc,wBAzBZ,GAyBE,kCACEP,WADF,EAEwB;AACtB,WAAOD,wBAAwB,CAAC,KAAKN,GAAN,EAAWO,WAAX,CAA/B;AACD;AAED;AA/BF;;AAAA,SAgCEQ,SAhCF,GAgCE,qBAA4C;AAC1C,WAAOpB,MAAM,CAACC,mCAAP,CAA2C,KAAKI,GAAhD,CAAP;AACD;AAED;AACF;AACA;AAtCA;;AAAA,SAuCEgB,KAvCF,GAuCE,eAAMC,cAAN,EAA8BC,gBAA9B,EAAiE;AAC/D,WAAO,IAAIP,MAAJ,CAAY,GAAE,KAAKX,GAAI,IAAGiB,cAAe,EAAzC,EAA4CC,gBAA5C,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3DA;;AAAA,SA4DEC,OA5DF,GA4DE,iBAAQA,QAAR,EAAkD;AAChD,QAAMC,MAAM,GAAG,IAAIT,MAAJ,CAAW,KAAKX,GAAhB,CAAf;AACAoB,IAAAA,MAAM,CAACC,UAAP,CAAkBF,QAAlB;AACA,WAAOC,MAAP;AACD;AAED;AACF;AACA;AApEA;;AAAA,SAqEEE,gBArEF,GAqEE,4BAAkE;AAChE,WAAO,KAAKC,aAAZ;AACD;AAED;AACF;AACA;AACA;AACA;AA7EA;;AAAA,SA8EEF,UA9EF,GA8EE,oBAAWF,OAAX,EAAmD;AACjD,SAAKI,aAAL,GAAqBJ,OAArB;AACD;AAED;AACF;AACA;AApFA;;AAAA,SAqFEK,cArFF,GAqFE,wBAAeC,eAAf,EAA+D;AAC7DC,IAAAA,MAAM,CAACC,MAAP,CAAc,KAAKJ,aAAnB,EAAkCE,eAAlC;AACD;AAED;AACF;AACA;AACA;AACA;AA7FA;;AAAA,SA8FEG,SA9FF,GA8FE,mBAA8BC,MAA9B,EAAoE;AAClE,gCAAiC,KAAKf,wBAAL,CAC/Be,MAAM,CAAC5B,KADwB,CAAjC;AAAA,QAAQJ,QAAR,yBAAQA,QAAR;AAAA,QAAkBC,UAAlB,yBAAkBA,UAAlB;;AAIA,QAAID,QAAQ,CAACiC,MAAT,KAAoB,CAAxB,EAA2B;AACzB,UAAID,MAAM,CAAC5B,KAAP,GAAe8B,KAAK,CAACC,KAAzB,EAAgC;AAC9B;AACAC,QAAAA,OAAO,CAACC,GAAR,CAAY,4CAAZ,EAA0D;AACxDlC,UAAAA,GAAG,EAAE6B,MAAM,CAAC7B,GAD4C;AAExDmC,UAAAA,OAAO,EAAEN,MAAM,CAACM;AAFwC,SAA1D;AAID;;AACD;AACD;;AAED,QAAIrC,UAAJ,EAAgB;AACdA,MAAAA,UAAU,CAACsC,OAAX,CAAmB,UAACC,OAAD,EAAa;AAC9BA,QAAAA,OAAO,CAACR,MAAD,EAASA,MAAM,CAACV,OAAhB,CAAP;AACD,OAFD;AAGD;;AAEDtB,IAAAA,QAAQ,CAACyC,IAAT,CAAc,UAACnC,OAAD;AAAA,aAAaA,OAAO,CAACoC,MAAR,CAAeV,MAAf,MAA2B,KAAxC;AAAA,KAAd;AACD;AAED;AACF;AACA;AAzHA;;AAAA,SA0HEK,GA1HF,GA0HE,aACEzB,cADF,EAEE+B,QAFF,EAGEvC,KAHF,EAIEwC,OAJF,EAKQ;AAAA,QAFNxC,KAEM;AAFNA,MAAAA,KAEM,GAFS8B,KAAK,CAACW,IAEf;AAAA;;AACN,QAAMC,cAAc,GAAGnC,OAAO,CAACC,cAAD,CAA9B;AAEA,QAAM0B,OAAO,GAAGQ,cAAc,GACzB,GAAElC,cAAc,CAACmC,IAAK,KAAInC,cAAc,CAAC0B,OAAQ,EADxB,GAE1B1B,cAFJ;AAIA,QAAMoC,gBAAgB,GACpBF,cAAc;AAEd,KAACjB,MAAM,CAACoB,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,QAArC,EAA+C,OAA/C,CAFD,gBAGSA,QAHT;AAGmBS,MAAAA,KAAK,EAAExC;AAH1B,SAII+B,QALN;AAOA,QAAMrB,OAAO,GAAG0B,gBAAH,oBAAGA,gBAAgB,CAAE1B,OAAlC;;AACA,QAAI0B,gBAAJ,EAAsB;AACpB,aAAOA,gBAAgB,CAAC1B,OAAxB;AACD;;AAED,QAAMU,MAAuD;AAC3D5B,MAAAA,KAD2D;AAE3DD,MAAAA,GAAG,EAAE,KAAKA,GAFiD;AAG3DY,MAAAA,WAAW,EAAE,KAAKA,WAHyC;AAI3DsC,MAAAA,QAAQ,EAAE,IAAIC,IAAJ,EAJiD;AAK3DhB,MAAAA,OAL2D;AAM3DhB,MAAAA,OAAO,EAAEA,OAAO,IAAI,KAAKI,aANkC;AAO3DiB,MAAAA,QAAQ,EAAEK,gBAPiD;AAQ3DO,MAAAA,KAAK,EAAE;AARoD,OASxDX,OATwD,CAA7D;;AAWA,SAAKb,SAAL,CAAeC,MAAf;AACD;AAED;AACF;AACA;AAlKA;;AAAA,SAmKEwB,KAnKF,GAmKE,eACE5C,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACwB,KAAzC,EAAgD;AAAED,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AA7KA;;AAAA,SA8KEE,KA9KF,GA8KE,eACE/C,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAAC0B,KAAzC,EAAgD;AAAEH,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AAxLA;;AAAA,SAyLEI,MAzLF,GAyLE,gBACEjD,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAAC4B,MAAzC,EAAiD;AAAEL,MAAAA;AAAF,KAAjD;AACD;AAED;AACF;AACA;AAnMA;;AAAA,SAoMEM,IApMF,GAoME,cACEnD,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACW,IAAzC,EAA+C;AAAEY,MAAAA;AAAF,KAA/C;AACD;AAED;AACF;AACA;AA9MA;;AAAA,SA+MEO,IA/MF,GA+ME,cACEpD,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAAC+B,IAAzC,EAA+C;AAAER,MAAAA;AAAF,KAA/C;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnOA;;AAAA,SAoOEL,KApOF,GAoOE,eACExC,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACC,KAAzC,EAAgD;AAAEsB,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AA9OA;;AAAA,SA+OES,QA/OF,GA+OE,kBACEtD,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACiC,QAAzC,EAAmD;AAAEV,MAAAA;AAAF,KAAnD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnQA;;AAAA,SAoQEW,KApQF,GAoQE,eACExD,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACmC,KAAzC,EAAgD;AAAEZ,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AA9QA;;AAAA,SA+QEa,KA/QF,GA+QE,eACE1D,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACqC,KAAzC,EAAgD;AAAEd,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AAzRA;;AAAA,SA0REe,YA1RF,GA0RE,wBAIQ;AAEJ,UAAM,IAAI3D,KAAJ,CAAU,mDAAV,CAAN;AAUH;AAED;AACF;AACA;AA9SA;;AAAA,SA+SE4D,UA/SF,GA+SE,sBAKQ;AAEJ,UAAM,IAAI5D,KAAJ,CAAU,mDAAV,CAAN;AAQH;AAED;AACF;AACA;AAlUA;;AAAA,SAmUE6D,OAnUF,GAmUE,iBACEpC,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKkB,WAAL,CAAiBrC,OAAjB,EAA0BK,QAA1B,EAAoCc,cAApC;AACD;AAED;AACF;AACA;AA7UA;;AAAA,SA8UEkB,WA9UF,GA8UE,qBACErC,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,KAAK,CAACW,IAAlC,EAAwC;AACtCY,MAAAA,cADsC;AAEtCmB,MAAAA,MAAM,EAAE,GAF8B;AAGtCC,MAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,MAAV;AAH8B,KAAxC;AAKD;AAED;AACF;AACA;AA5VA;;AAAA,SA6VEC,YA7VF,GA6VE,sBACExC,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BT,KAAK,CAAC0B,KAAlC,EAAyC;AACvCH,MAAAA,cADuC;AAEvCmB,MAAAA,MAAM,EAAE,GAF+B;AAGvCC,MAAAA,MAAM,EAAE,CAAC,OAAD;AAH+B,KAAzC;AAKD;AAED;AACF;AACA;AA3WA;;AAAA,SA4WEE,IA5WF,GA4WE,cACEnE,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKuB,QAAL,CAAcpE,cAAd,EAA8B+B,QAA9B,EAAwCc,cAAxC;AACD;AAED;AACF;AACA;AAtXA;;AAAA,SAuXEuB,QAvXF,GAuXE,kBACEpE,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAACW,IAAzC,EAA+C;AAC7CY,MAAAA,cAD6C;AAE7CmB,MAAAA,MAAM,EAAE,GAFqC;AAG7CC,MAAAA,MAAM,EAAE,CAAC,KAAD,EAAQ,MAAR;AAHqC,KAA/C;AAKD;AAED;AACF;AACA;AArYA;;AAAA,SAsYEI,SAtYF,GAsYE,mBACErE,cADF,EAEE+B,QAFF,EAGEc,cAHF,EAIQ;AACN,SAAKpB,GAAL,CAASzB,cAAT,EAAyB+B,QAAzB,EAAmCT,KAAK,CAAC0B,KAAzC,EAAgD;AAC9CH,MAAAA,cAD8C;AAE9CmB,MAAAA,MAAM,EAAE,GAFsC;AAG9CC,MAAAA,MAAM,EAAE,CAAC,KAAD;AAHsC,KAAhD;AAKD;AAED;AACF;AACA;AApZA;;AAAA,SAqZEK,IArZF,GAqZE,cACE5C,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIErD,KAJF,EAKU;AAAA,QADRA,KACQ;AADRA,MAAAA,KACQ,GADQ8B,KAAK,CAAC0B,KACd;AAAA;;AACR,QAAItB,OAAJ,EAAa;AACX,WAAKD,GAAL,CAASC,OAAT,EAAkBK,QAAlB,EAA4BvC,KAA5B,EAAmC;AAAEqD,QAAAA;AAAF,OAAnC;AACD;;AAED,WAAOH,IAAI,CAAC6B,GAAL,EAAP;AACD,GAhaH;;AAAA,SAkaEC,QAlaF,GAkaE,kBACE9C,OADF,EAEEK,QAFF,EAGEc,cAHF,EAIU;AACR,WAAO,KAAKyB,IAAL,CAAU5C,OAAV,EAAmBK,QAAnB,EAA6Bc,cAA7B,EAA6CvB,KAAK,CAACW,IAAnD,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AA/aA;;AAAA,SAgbEwC,OAhbF,GAgbE,iBACEC,SADF,EAEEhD,OAFF,EAGEK,QAHF,EAIEc,cAJF,EAKErD,KALF,EAMEwC,OANF,EAOQ;AAAA,QAFNxC,KAEM;AAFNA,MAAAA,KAEM,GAFU8B,KAAK,CAAC0B,KAEhB;AAAA;;AACN,QAAMuB,GAAG,GAAG7B,IAAI,CAAC6B,GAAL,EAAZ;AAEA,QAAMI,QAAQ,GAAGJ,GAAG,GAAGG,SAAvB;AACA,QAAIE,YAAJ;;AAEA,QAAID,QAAQ,GAAG,IAAf,EAAqB;AACnBC,MAAAA,YAAY,GAAI,GAAED,QAAS,IAA3B;AACD,KAFD,MAEO;AACL,UAAME,OAAO,GAAGF,QAAQ,GAAG,IAAX,GAAkBG,IAAI,CAACC,KAAL,CAAWJ,QAAQ,GAAG,IAAtB,CAAlB,GAAgD,CAAhE;AAEAC,MAAAA,YAAY,GAAI,GAAEC,OAAO,GAAI,GAAEA,OAAQ,QAAd,GAAwB,EAAG,GADzCF,QAAQ,GAAGE,OAAO,GAAG,IACyB,IAAzD;AACD;;AAED,QAAMzC,gBAAgB,gBACjBL,QADiB;AAEpB6C,MAAAA,YAFoB;AAGpBI,MAAAA,MAAM,EAAEL;AAHY,MAAtB;;AAMA,SAAKlD,GAAL,CAASC,OAAT,EAAkBU,gBAAlB,EAAoC5C,KAApC,eAAgDwC,OAAhD;AAAyDa,MAAAA;AAAzD;AACD;AAED;AACF;AACA;AAhdA;;AAAA,SAidEoC,WAjdF,GAidE,qBACEX,IADF,EAEE5C,OAFF,EAGEK,QAHF,EAIEc,cAJF,EAKQ;AACN,SAAK4B,OAAL,CAAaH,IAAb,EAAmB5C,OAAnB,EAA4BK,QAA5B,EAAsCc,cAAtC,EAAsDvB,KAAK,CAACW,IAA5D;AACD;AAED;AACF;AACA;AA5dA;;AAAA,SA6dEiD,kBA7dF,GA6dE,4BACEZ,IADF,EAEE5C,OAFF,EAGEK,QAHF,EAIEc,cAJF,EAKQ;AACN,SAAK4B,OAAL,CAAaH,IAAb,EAAmB5C,OAAnB,EAA4BK,QAA5B,EAAsCc,cAAtC,EAAsDvB,KAAK,CAACW,IAA5D,EAAkE;AAChE+B,MAAAA,MAAM,EAAE,GADwD;AAEhEC,MAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,MAAV;AAFwD,KAAlE;AAID;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtfA;;AAAA,SAufEkB,KAvfF,GAufE,eACEC,EADF,EAEErD,QAFF,EAGEc,cAHF,EAIQ;AACN,QAAMT,gBAAgB,gBACjBL,QADiB;AAEpBsD,MAAAA,YAAY,EAAED,EAAE,CAACjD;AAFG,MAAtB;;AAIA,SAAKV,GAAL,CAAS,OAAT,EAAkBW,gBAAlB,EAAoCd,KAAK,CAACwB,KAA1C,EAAiD;AAAED,MAAAA;AAAF,KAAjD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhhBA;;AAAA,SAihBEyC,IAjhBF,GAihBE,cACEF,EADF,EAEErD,QAFF,EAGEc,cAHF,EAIQ;AACN,QAAMT,gBAAgB,gBACjBL,QADiB;AAEpBsD,MAAAA,YAAY,EAAED,EAAE,CAACjD;AAFG,MAAtB;;AAIA,SAAKV,GAAL,CAAS,MAAT,EAAiBW,gBAAjB,EAAmCd,KAAK,CAACwB,KAAzC,EAAgD;AAAED,MAAAA;AAAF,KAAhD;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3iBA;;AAAA,SA8jBE0C,IA9jBF,GA8jBE,cACEH,EADF,EAEEI,OAFF,EAGEC,OAHF,EAIEC,QAJF,EAKQ;AACN,QAAI3D,QAAJ;AACA,QAAIc,cAAJ;;AAEA,QAAI,OAAO2C,OAAP,KAAmB,UAAvB,EAAmC;AACjCE,MAAAA,QAAQ,GAAGF,OAAX;AACD,KAFD,MAEO;AACLzD,MAAAA,QAAQ,GAAGyD,OAAX;;AAEA,UAAI,OAAOC,OAAP,KAAmB,UAAvB,EAAmC;AACjCC,QAAAA,QAAQ,GAAGD,OAAX;AACD,OAFD,MAEO;AACL5C,QAAAA,cAAc,GAAG4C,OAAjB;AACD;AACF;;AAED,SAAKN,KAAL,CAAWC,EAAX,EAAerD,QAAf,EAAyBc,cAAzB;AACC6C,IAAAA,QAAD;AACA,SAAKJ,IAAL,CAAUF,EAAV;AACD,GAtlBH;;AAAA;AAAA;;;;"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-browser.cjs.js b/packages/nightingale-logger/dist/index-browser.cjs.js index 8b84afe73..3969a93cd 100644 --- a/packages/nightingale-logger/dist/index-browser.cjs.js +++ b/packages/nightingale-logger/dist/index-browser.cjs.js @@ -38,6 +38,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -166,15 +170,21 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.log = function log(message, metadata, level, options) { + _proto.log = function log(messageOrError, metadata, level, options) { if (level === void 0) { level = nightingaleLevels.Level.INFO; } - var context = metadata == null ? void 0 : metadata.context; + var isMessageError = isError(messageOrError); + var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? _extends__default({}, metadata, { + error: messageOrError + }) : metadata; + var context = extendedMetadata == null ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } var record = _extends__default({ @@ -184,7 +194,7 @@ var Logger = /*#__PURE__*/function () { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {} }, options); @@ -195,8 +205,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.trace = function trace(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.TRACE, { + _proto.trace = function trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, { metadataStyles }); } @@ -205,8 +215,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debug = function debug(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + _proto.debug = function debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles }); } @@ -215,8 +225,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.notice = function notice(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.NOTICE, { + _proto.notice = function notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, { metadataStyles }); } @@ -225,8 +235,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.info = function info(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + _proto.info = function info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles }); } @@ -235,8 +245,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.warn = function warn(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.WARN, { + _proto.warn = function warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, { metadataStyles }); } @@ -255,29 +265,18 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.error = function error(message, metadata, metadataStyles) { - if (message instanceof Error) { - var extendedMetadata = _extends__default({}, metadata, { - error: message - }); - - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } + _proto.error = function error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ ; - _proto.critical = function critical(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.CRITICAL, { + _proto.critical = function critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, { metadataStyles }); } @@ -296,8 +295,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fatal = function fatal(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.FATAL, { + _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, { metadataStyles }); } @@ -306,8 +305,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.alert = function alert(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.ALERT, { + _proto.alert = function alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, { metadataStyles }); } @@ -364,16 +363,16 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fail = function fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + _proto.fail = function fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ ; - _proto.infoFail = function infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -384,8 +383,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debugFail = function debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-browser.cjs.js.map b/packages/nightingale-logger/dist/index-browser.cjs.js.map index a79f01da1..82ef2918c 100644 --- a/packages/nightingale-logger/dist/index-browser.cjs.js.map +++ b/packages/nightingale-logger/dist/index-browser.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"index-browser.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-browser.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-browser.es.js b/packages/nightingale-logger/dist/index-browser.es.js index f8745666d..b612f0225 100644 --- a/packages/nightingale-logger/dist/index-browser.es.js +++ b/packages/nightingale-logger/dist/index-browser.es.js @@ -31,6 +31,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -159,15 +163,21 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.log = function log(message, metadata, level, options) { + _proto.log = function log(messageOrError, metadata, level, options) { if (level === void 0) { level = Level.INFO; } - var context = metadata == null ? void 0 : metadata.context; + var isMessageError = isError(messageOrError); + var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? _extends({}, metadata, { + error: messageOrError + }) : metadata; + var context = extendedMetadata == null ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } var record = _extends({ @@ -177,7 +187,7 @@ var Logger = /*#__PURE__*/function () { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {} }, options); @@ -188,8 +198,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.trace = function trace(message, metadata, metadataStyles) { - this.log(message, metadata, Level.TRACE, { + _proto.trace = function trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } @@ -198,8 +208,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debug = function debug(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + _proto.debug = function debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } @@ -208,8 +218,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.notice = function notice(message, metadata, metadataStyles) { - this.log(message, metadata, Level.NOTICE, { + _proto.notice = function notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } @@ -218,8 +228,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.info = function info(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + _proto.info = function info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } @@ -228,8 +238,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.warn = function warn(message, metadata, metadataStyles) { - this.log(message, metadata, Level.WARN, { + _proto.warn = function warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } @@ -248,29 +258,18 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.error = function error(message, metadata, metadataStyles) { - if (message instanceof Error) { - var extendedMetadata = _extends({}, metadata, { - error: message - }); - - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, Level.ERROR, { - metadataStyles - }); - } + _proto.error = function error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ ; - _proto.critical = function critical(message, metadata, metadataStyles) { - this.log(message, metadata, Level.CRITICAL, { + _proto.critical = function critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } @@ -289,8 +288,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fatal = function fatal(message, metadata, metadataStyles) { - this.log(message, metadata, Level.FATAL, { + _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } @@ -299,8 +298,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.alert = function alert(message, metadata, metadataStyles) { - this.log(message, metadata, Level.ALERT, { + _proto.alert = function alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } @@ -357,16 +356,16 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.fail = function fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + _proto.fail = function fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ ; - _proto.infoFail = function infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -377,8 +376,8 @@ var Logger = /*#__PURE__*/function () { */ ; - _proto.debugFail = function debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-browser.es.js.map b/packages/nightingale-logger/dist/index-browser.es.js.map index 2d3a231bd..ea08a372a 100644 --- a/packages/nightingale-logger/dist/index-browser.es.js.map +++ b/packages/nightingale-logger/dist/index-browser.es.js.map @@ -1 +1 @@ -{"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-browser.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","options","INFO","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-browsermodern-dev.es.js b/packages/nightingale-logger/dist/index-browsermodern-dev.es.js index 2d2d6732c..ae09380be 100644 --- a/packages/nightingale-logger/dist/index-browsermodern-dev.es.js +++ b/packages/nightingale-logger/dist/index-browsermodern-dev.es.js @@ -29,6 +29,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -158,11 +162,17 @@ class Logger { */ - log(message, metadata, level = Level.INFO, options) { - const context = metadata === null || metadata === void 0 ? void 0 : metadata.context; + log(messageOrError, metadata, level = Level.INFO, options) { + const isMessageError = isError(messageOrError); + const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? { ...metadata, + error: messageOrError + } : metadata; + const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } const record = { @@ -172,7 +182,7 @@ class Logger { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {}, ...options }; @@ -183,8 +193,8 @@ class Logger { */ - trace(message, metadata, metadataStyles) { - this.log(message, metadata, Level.TRACE, { + trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } @@ -193,8 +203,8 @@ class Logger { */ - debug(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } @@ -203,8 +213,8 @@ class Logger { */ - notice(message, metadata, metadataStyles) { - this.log(message, metadata, Level.NOTICE, { + notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } @@ -213,8 +223,8 @@ class Logger { */ - info(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } @@ -223,8 +233,8 @@ class Logger { */ - warn(message, metadata, metadataStyles) { - this.log(message, metadata, Level.WARN, { + warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } @@ -243,28 +253,18 @@ class Logger { */ - error(message, metadata, metadataStyles) { - if (message instanceof Error) { - const extendedMetadata = { ...metadata, - error: message - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, Level.ERROR, { - metadataStyles - }); - } + error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ - critical(message, metadata, metadataStyles) { - this.log(message, metadata, Level.CRITICAL, { + critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } @@ -283,8 +283,8 @@ class Logger { */ - fatal(message, metadata, metadataStyles) { - this.log(message, metadata, Level.FATAL, { + fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } @@ -293,8 +293,8 @@ class Logger { */ - alert(message, metadata, metadataStyles) { - this.log(message, metadata, Level.ALERT, { + alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } @@ -351,16 +351,16 @@ class Logger { */ - fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ - infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -371,8 +371,8 @@ class Logger { */ - debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-browsermodern-dev.es.js.map b/packages/nightingale-logger/dist/index-browsermodern-dev.es.js.map index c650b8f1b..c9a692b07 100644 --- a/packages/nightingale-logger/dist/index-browsermodern-dev.es.js.map +++ b/packages/nightingale-logger/dist/index-browsermodern-dev.es.js.map @@ -1 +1 @@ -{"version":3,"file":"index-browsermodern-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-browsermodern-dev.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-browsermodern.es.js b/packages/nightingale-logger/dist/index-browsermodern.es.js index 8647a5b97..ad8b40337 100644 --- a/packages/nightingale-logger/dist/index-browsermodern.es.js +++ b/packages/nightingale-logger/dist/index-browsermodern.es.js @@ -29,6 +29,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -154,11 +158,17 @@ class Logger { */ - log(message, metadata, level = Level.INFO, options) { - const context = metadata === null || metadata === void 0 ? void 0 : metadata.context; + log(messageOrError, metadata, level = Level.INFO, options) { + const isMessageError = isError(messageOrError); + const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? { ...metadata, + error: messageOrError + } : metadata; + const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } const record = { @@ -168,7 +178,7 @@ class Logger { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {}, ...options }; @@ -179,8 +189,8 @@ class Logger { */ - trace(message, metadata, metadataStyles) { - this.log(message, metadata, Level.TRACE, { + trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } @@ -189,8 +199,8 @@ class Logger { */ - debug(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } @@ -199,8 +209,8 @@ class Logger { */ - notice(message, metadata, metadataStyles) { - this.log(message, metadata, Level.NOTICE, { + notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } @@ -209,8 +219,8 @@ class Logger { */ - info(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } @@ -219,8 +229,8 @@ class Logger { */ - warn(message, metadata, metadataStyles) { - this.log(message, metadata, Level.WARN, { + warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } @@ -239,28 +249,18 @@ class Logger { */ - error(message, metadata, metadataStyles) { - if (message instanceof Error) { - const extendedMetadata = { ...metadata, - error: message - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, Level.ERROR, { - metadataStyles - }); - } + error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ - critical(message, metadata, metadataStyles) { - this.log(message, metadata, Level.CRITICAL, { + critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } @@ -279,8 +279,8 @@ class Logger { */ - fatal(message, metadata, metadataStyles) { - this.log(message, metadata, Level.FATAL, { + fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } @@ -289,8 +289,8 @@ class Logger { */ - alert(message, metadata, metadataStyles) { - this.log(message, metadata, Level.ALERT, { + alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } @@ -347,16 +347,16 @@ class Logger { */ - fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ - infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -367,8 +367,8 @@ class Logger { */ - debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-browsermodern.es.js.map b/packages/nightingale-logger/dist/index-browsermodern.es.js.map index bbc64183e..6f5aabf52 100644 --- a/packages/nightingale-logger/dist/index-browsermodern.es.js.map +++ b/packages/nightingale-logger/dist/index-browsermodern.es.js.map @@ -1 +1 @@ -{"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-browsermodern.es.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","inspectVar","success","infoSuccess","symbol","styles","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-node12-dev.cjs.js b/packages/nightingale-logger/dist/index-node12-dev.cjs.js index 37cc373d6..68b5dbca2 100644 --- a/packages/nightingale-logger/dist/index-node12-dev.cjs.js +++ b/packages/nightingale-logger/dist/index-node12-dev.cjs.js @@ -47,6 +47,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -176,11 +180,17 @@ class Logger { */ - log(message, metadata, level = nightingaleLevels.Level.INFO, options) { - const context = metadata === null || metadata === void 0 ? void 0 : metadata.context; + log(messageOrError, metadata, level = nightingaleLevels.Level.INFO, options) { + const isMessageError = isError(messageOrError); + const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? { ...metadata, + error: messageOrError + } : metadata; + const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } const record = { @@ -190,7 +200,7 @@ class Logger { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {}, ...options }; @@ -201,8 +211,8 @@ class Logger { */ - trace(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.TRACE, { + trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, { metadataStyles }); } @@ -211,8 +221,8 @@ class Logger { */ - debug(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles }); } @@ -221,8 +231,8 @@ class Logger { */ - notice(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.NOTICE, { + notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, { metadataStyles }); } @@ -231,8 +241,8 @@ class Logger { */ - info(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles }); } @@ -241,8 +251,8 @@ class Logger { */ - warn(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.WARN, { + warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, { metadataStyles }); } @@ -261,28 +271,18 @@ class Logger { */ - error(message, metadata, metadataStyles) { - if (message instanceof Error) { - const extendedMetadata = { ...metadata, - error: message - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } + error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ - critical(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.CRITICAL, { + critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, { metadataStyles }); } @@ -301,8 +301,8 @@ class Logger { */ - fatal(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.FATAL, { + fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, { metadataStyles }); } @@ -311,8 +311,8 @@ class Logger { */ - alert(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.ALERT, { + alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, { metadataStyles }); } @@ -387,16 +387,16 @@ class Logger { */ - fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ - infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -407,8 +407,8 @@ class Logger { */ - debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-node12-dev.cjs.js.map b/packages/nightingale-logger/dist/index-node12-dev.cjs.js.map index 5325b492c..b95d04fba 100644 --- a/packages/nightingale-logger/dist/index-node12-dev.cjs.js.map +++ b/packages/nightingale-logger/dist/index-node12-dev.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"index-node12-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-node12-dev.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-node12-dev.mjs b/packages/nightingale-logger/dist/index-node12-dev.mjs index 077900513..7fcd13ce1 100644 --- a/packages/nightingale-logger/dist/index-node12-dev.mjs +++ b/packages/nightingale-logger/dist/index-node12-dev.mjs @@ -30,6 +30,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -159,11 +163,17 @@ class Logger { */ - log(message, metadata, level = Level.INFO, options) { - const context = metadata === null || metadata === void 0 ? void 0 : metadata.context; + log(messageOrError, metadata, level = Level.INFO, options) { + const isMessageError = isError(messageOrError); + const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? { ...metadata, + error: messageOrError + } : metadata; + const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } const record = { @@ -173,7 +183,7 @@ class Logger { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {}, ...options }; @@ -184,8 +194,8 @@ class Logger { */ - trace(message, metadata, metadataStyles) { - this.log(message, metadata, Level.TRACE, { + trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } @@ -194,8 +204,8 @@ class Logger { */ - debug(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } @@ -204,8 +214,8 @@ class Logger { */ - notice(message, metadata, metadataStyles) { - this.log(message, metadata, Level.NOTICE, { + notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } @@ -214,8 +224,8 @@ class Logger { */ - info(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } @@ -224,8 +234,8 @@ class Logger { */ - warn(message, metadata, metadataStyles) { - this.log(message, metadata, Level.WARN, { + warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } @@ -244,28 +254,18 @@ class Logger { */ - error(message, metadata, metadataStyles) { - if (message instanceof Error) { - const extendedMetadata = { ...metadata, - error: message - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, Level.ERROR, { - metadataStyles - }); - } + error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ - critical(message, metadata, metadataStyles) { - this.log(message, metadata, Level.CRITICAL, { + critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } @@ -284,8 +284,8 @@ class Logger { */ - fatal(message, metadata, metadataStyles) { - this.log(message, metadata, Level.FATAL, { + fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } @@ -294,8 +294,8 @@ class Logger { */ - alert(message, metadata, metadataStyles) { - this.log(message, metadata, Level.ALERT, { + alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } @@ -370,16 +370,16 @@ class Logger { */ - fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ - infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -390,8 +390,8 @@ class Logger { */ - debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-node12-dev.mjs.map b/packages/nightingale-logger/dist/index-node12-dev.mjs.map index 714d40530..10ee3a1b0 100644 --- a/packages/nightingale-logger/dist/index-node12-dev.mjs.map +++ b/packages/nightingale-logger/dist/index-node12-dev.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-node12-dev.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","includes","Error","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-node12-dev.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","includes","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-node12.cjs.js b/packages/nightingale-logger/dist/index-node12.cjs.js index f439084a3..97e6139d6 100644 --- a/packages/nightingale-logger/dist/index-node12.cjs.js +++ b/packages/nightingale-logger/dist/index-node12.cjs.js @@ -47,6 +47,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -172,11 +176,17 @@ class Logger { */ - log(message, metadata, level = nightingaleLevels.Level.INFO, options) { - const context = metadata === null || metadata === void 0 ? void 0 : metadata.context; + log(messageOrError, metadata, level = nightingaleLevels.Level.INFO, options) { + const isMessageError = isError(messageOrError); + const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? { ...metadata, + error: messageOrError + } : metadata; + const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } const record = { @@ -186,7 +196,7 @@ class Logger { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {}, ...options }; @@ -197,8 +207,8 @@ class Logger { */ - trace(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.TRACE, { + trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, { metadataStyles }); } @@ -207,8 +217,8 @@ class Logger { */ - debug(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles }); } @@ -217,8 +227,8 @@ class Logger { */ - notice(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.NOTICE, { + notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, { metadataStyles }); } @@ -227,8 +237,8 @@ class Logger { */ - info(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles }); } @@ -237,8 +247,8 @@ class Logger { */ - warn(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.WARN, { + warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, { metadataStyles }); } @@ -257,28 +267,18 @@ class Logger { */ - error(message, metadata, metadataStyles) { - if (message instanceof Error) { - const extendedMetadata = { ...metadata, - error: message - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, nightingaleLevels.Level.ERROR, { - metadataStyles - }); - } + error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ - critical(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.CRITICAL, { + critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, { metadataStyles }); } @@ -297,8 +297,8 @@ class Logger { */ - fatal(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.FATAL, { + fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, { metadataStyles }); } @@ -307,8 +307,8 @@ class Logger { */ - alert(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.ALERT, { + alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, { metadataStyles }); } @@ -383,16 +383,16 @@ class Logger { */ - fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ - infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.INFO, { + infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -403,8 +403,8 @@ class Logger { */ - debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, nightingaleLevels.Level.DEBUG, { + debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-node12.cjs.js.map b/packages/nightingale-logger/dist/index-node12.cjs.js.map index af3e6b67b..6784b26eb 100644 --- a/packages/nightingale-logger/dist/index-node12.cjs.js.map +++ b/packages/nightingale-logger/dist/index-node12.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"index-node12.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-node12.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index-node12.mjs b/packages/nightingale-logger/dist/index-node12.mjs index 176b6a5b0..cdf68a095 100644 --- a/packages/nightingale-logger/dist/index-node12.mjs +++ b/packages/nightingale-logger/dist/index-node12.mjs @@ -30,6 +30,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) { function getConfigForLoggerRecord(key, recordLevel) { return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } + +function isError(messageOrError) { + return messageOrError instanceof Error; +} /** * Interface that allows you to log records. * This records are treated by handlers @@ -155,11 +159,17 @@ class Logger { */ - log(message, metadata, level = Level.INFO, options) { - const context = metadata === null || metadata === void 0 ? void 0 : metadata.context; + log(messageOrError, metadata, level = Level.INFO, options) { + const isMessageError = isError(messageOrError); + const message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError; + const extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own + !Object.prototype.hasOwnProperty.call(metadata, 'error') ? { ...metadata, + error: messageOrError + } : metadata; + const context = extendedMetadata === null || extendedMetadata === void 0 ? void 0 : extendedMetadata.context; - if (metadata) { - delete metadata.context; + if (extendedMetadata) { + delete extendedMetadata.context; } const record = { @@ -169,7 +179,7 @@ class Logger { datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata, extra: {}, ...options }; @@ -180,8 +190,8 @@ class Logger { */ - trace(message, metadata, metadataStyles) { - this.log(message, metadata, Level.TRACE, { + trace(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } @@ -190,8 +200,8 @@ class Logger { */ - debug(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debug(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } @@ -200,8 +210,8 @@ class Logger { */ - notice(message, metadata, metadataStyles) { - this.log(message, metadata, Level.NOTICE, { + notice(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } @@ -210,8 +220,8 @@ class Logger { */ - info(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + info(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } @@ -220,8 +230,8 @@ class Logger { */ - warn(message, metadata, metadataStyles) { - this.log(message, metadata, Level.WARN, { + warn(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } @@ -240,28 +250,18 @@ class Logger { */ - error(message, metadata, metadataStyles) { - if (message instanceof Error) { - const extendedMetadata = { ...metadata, - error: message - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { - metadataStyles - }); - } else { - this.log(message, metadata, Level.ERROR, { - metadataStyles - }); - } + error(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ERROR, { + metadataStyles + }); } /** * Log an critical message */ - critical(message, metadata, metadataStyles) { - this.log(message, metadata, Level.CRITICAL, { + critical(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } @@ -280,8 +280,8 @@ class Logger { */ - fatal(message, metadata, metadataStyles) { - this.log(message, metadata, Level.FATAL, { + fatal(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } @@ -290,8 +290,8 @@ class Logger { */ - alert(message, metadata, metadataStyles) { - this.log(message, metadata, Level.ALERT, { + alert(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } @@ -366,16 +366,16 @@ class Logger { */ - fail(message, metadata, metadataStyles) { - this.infoFail(message, metadata, metadataStyles); + fail(messageOrError, metadata, metadataStyles) { + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ - infoFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.INFO, { + infoFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'] @@ -386,8 +386,8 @@ class Logger { */ - debugFail(message, metadata, metadataStyles) { - this.log(message, metadata, Level.DEBUG, { + debugFail(messageOrError, metadata, metadataStyles) { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'] diff --git a/packages/nightingale-logger/dist/index-node12.mjs.map b/packages/nightingale-logger/dist/index-node12.mjs.map index 714c50f5e..50155d986 100644 --- a/packages/nightingale-logger/dist/index-node12.mjs.map +++ b/packages/nightingale-logger/dist/index-node12.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index-node12.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\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 class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (message instanceof Error) {\n const extendedMetadata = {\n ...metadata,\n error: message,\n };\n message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;\n this.log(message, extendedMetadata, Level.ERROR, { metadataStyles });\n } else {\n this.log(message, metadata, Level.ERROR, { metadataStyles });\n }\n }\n\n /**\n * Log an critical message\n */\n critical(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"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","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","error","Error","extendedMetadata","name","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index-node12.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport { PRODUCTION, POB_TARGET } from 'pob-babel';\nimport * as util from 'util';\nimport { Level } from 'nightingale-levels';\nimport type {\n Metadata,\n MetadataStyles,\n Styles,\n Handler,\n Processor,\n LogRecord,\n} from 'nightingale-types';\n\nexport { Level } from 'nightingale-levels';\n\nexport interface Options {\n symbol?: string;\n metadataStyles?: MetadataStyles;\n styles?: Styles;\n}\n\nexport interface ComputedConfigForKey {\n handlers: Handler[];\n processors: Processor[];\n}\n\ninterface ExtendedFunctionNameMetadata {\n functionName: string;\n}\n\nexport interface Config {\n handler?: Handler;\n handlers?: Handler[];\n key?: string;\n keys?: string[];\n pattern?: RegExp;\n processor?: Processor;\n processors?: Processor[];\n stop?: boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Global {\n __NIGHTINGALE_CONFIG: Config[];\n __NIGHTINGALE_LOGGER_MAP_CACHE: Map;\n __NIGHTINGALE_CONFIG_DEFAULT: ComputedConfigForKey;\n __NIGHTINGALE_GLOBAL_HANDLERS: unknown;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER: (\n key: string,\n ) => ComputedConfigForKey;\n __NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD: (\n key: string,\n level: number,\n ) => ComputedConfigForKey;\n }\n }\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = (): ComputedConfigForKey => ({\n handlers: [],\n processors: [],\n });\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ComputedConfigForKey => {\n const { handlers, processors }: ComputedConfigForKey =\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n (handler) =>\n level >= handler.minLevel &&\n (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(\n key: string,\n recordLevel: Level,\n): ComputedConfigForKey {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\nfunction isError(messageOrError: Error | string): messageOrError is Error {\n return messageOrError instanceof Error;\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport class Logger {\n private contextObject?: Record;\n\n readonly key: string;\n\n readonly 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;\n this.displayName = displayName;\n\n if (!PRODUCTION && key.includes('.')) {\n throw new Error(\n `nightingale: \\`.\\` in key is no longer supported, use \\`:\\` instead (key: ${key})`,\n );\n }\n }\n\n /** @private */\n protected getHandlersAndProcessors(\n recordLevel: number,\n ): ComputedConfigForKey {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): Readonly {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName?: string): Logger {\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 * ```typescript\n * const loggerMyService = new Logger('app:myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.enter(someAction);\n * // do stuff\n * logger.info('info');\n * // do stuff\n * logger.exit(someAction);\n * }\n * ```\n *\n */\n context(context: Record): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Get the context of this logger\n */\n getContextObject(): Readonly> | undefined {\n return this.contextObject;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Record): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record): void {\n Object.assign(this.contextObject, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Readonly>): void {\n const { handlers, processors } = this.getHandlersAndProcessors(\n record.level,\n );\n\n if (handlers.length === 0) {\n if (record.level > Level.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) => {\n process(record, record.context);\n });\n }\n\n handlers.some((handler) => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options,\n ): void {\n const isMessageError = isError(messageOrError);\n\n const message = isMessageError\n ? `${messageOrError.name}: ${messageOrError.message}`\n : messageOrError;\n\n const extendedMetadata =\n isMessageError &&\n // eslint-disable-next-line unicorn/prefer-object-has-own\n !Object.prototype.hasOwnProperty.call(metadata, 'error')\n ? { ...metadata, error: messageOrError }\n : metadata;\n\n const context = extendedMetadata?.context;\n if (extendedMetadata) {\n delete extendedMetadata.context;\n }\n\n const record: LogRecord> = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this.contextObject,\n metadata: extendedMetadata as NonNullable,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * }\n * ```\n */\n error(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n *\n * @example\n * ```typescript\n * const logger = new Logger('something');\n * try {\n * throw new Error('Always throws here');\n * } catch (error) {\n * logger.error('caught error', { error });\n * process.exit(1);\n * }\n */\n fatal(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n const inspectedValue = util.inspect(value, { depth: 6 });\n this.log(inspectedValue, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['gray'],\n });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n if (POB_TARGET === 'browser') {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n const inspectedValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${inspectedValue}`, metadata, Level.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(message, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): number {\n return this.time(message, metadata, metadataStyles, Level.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 timeEnd(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n level: number = Level.DEBUG,\n options?: Options,\n ): void {\n const now = Date.now();\n\n const diffTime = now - startTime;\n let readableTime;\n\n if (diffTime < 1000) {\n readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 ? Math.floor(diffTime / 1000) : 0;\n const ms = diffTime - seconds * 1000;\n readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n const extendedMetadata = {\n ...metadata,\n readableTime,\n timeMs: diffTime,\n };\n\n this.log(message, extendedMetadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * ```typescript\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n * ```\n *\n */\n enter unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('enter', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n * ```\n */\n exit unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles,\n ): void {\n const extendedMetadata = {\n ...metadata,\n functionName: fn.name,\n };\n this.log('exit', extendedMetadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * ```typescript\n * const logger = new Logger('myNamespace:A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n * ```\n */\n wrap unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles,\n callback: () => void,\n ): void;\n\n wrap unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles | undefined;\n\n if (typeof option1 === 'function') {\n callback = option1;\n } else {\n metadata = option1;\n\n if (typeof option2 === 'function') {\n callback = option2;\n } else {\n metadataStyles = option2;\n }\n }\n\n this.enter(fn, metadata, metadataStyles);\n (callback as () => void)();\n this.exit(fn);\n }\n}\n\n/** @deprecated use named export instead */\nexport default Logger;\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","isError","messageOrError","Error","Logger","constructor","displayName","getHandlersAndProcessors","getConfig","child","childSuffixKey","childDisplayName","context","logger","setContext","getContextObject","contextObject","extendsContext","extendedContext","Object","assign","addRecord","record","length","Level","ERROR","console","log","message","forEach","process","some","handle","metadata","INFO","options","isMessageError","name","extendedMetadata","prototype","hasOwnProperty","call","error","datetime","Date","extra","trace","metadataStyles","TRACE","debug","DEBUG","notice","NOTICE","info","warn","WARN","critical","CRITICAL","fatal","FATAL","alert","ALERT","inspectValue","value","inspectedValue","util","inspect","depth","styles","inspectVar","varName","varValue","success","infoSuccess","symbol","debugSuccess","fail","infoFail","debugFail","time","now","infoTime","timeEnd","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","infoTimeEnd","infoSuccessTimeEnd","enter","fn","functionName","exit","wrap","option1","option2","callback"],"mappings":"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"} \ No newline at end of file diff --git a/packages/nightingale-logger/dist/index.d.ts b/packages/nightingale-logger/dist/index.d.ts index 977a49505..e1328a13c 100644 --- a/packages/nightingale-logger/dist/index.d.ts +++ b/packages/nightingale-logger/dist/index.d.ts @@ -99,27 +99,27 @@ export declare class Logger { /** * Log a message */ - log(message: string, metadata?: T, level?: Level, options?: Options): void; + log(messageOrError: string | Error, metadata?: T, level?: Level, options?: Options): void; /** * Log a trace message */ - trace(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + trace(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log a debug message */ - debug(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + debug(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Notice an info message */ - notice(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + notice(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an info message */ - info(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + info(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log a warn message */ - warn(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + warn(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an error message * @@ -133,11 +133,11 @@ export declare class Logger { * } * ``` */ - error(message: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; + error(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an critical message */ - critical(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + critical(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log a fatal message * @@ -151,11 +151,11 @@ export declare class Logger { * process.exit(1); * } */ - fatal(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + fatal(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an alert message */ - alert(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + alert(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an inspected value */ @@ -179,15 +179,15 @@ export declare class Logger { /** * Alias for infoFail */ - fail(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + fail(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an info fail message */ - infoFail(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + infoFail(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * Log an debug fail message */ - debugFail(message: string, metadata?: T, metadataStyles?: MetadataStyles): void; + debugFail(messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles): void; /** * @returns {number} time to pass to timeEnd */ diff --git a/packages/nightingale-logger/dist/index.d.ts.map b/packages/nightingale-logger/dist/index.d.ts.map index 9187b3817..96f959cc2 100644 --- a/packages/nightingale-logger/dist/index.d.ts.map +++ b/packages/nightingale-logger/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,QAAQ;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,UAAU,4BAA4B;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,MAAM,CAAC;QACf,UAAU,MAAM;YACd,oBAAoB,EAAE,MAAM,EAAE,CAAC;YAC/B,8BAA8B,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YAClE,4BAA4B,EAAE,oBAAoB,CAAC;YACnD,6BAA6B,EAAE,OAAO,CAAC;YACvC,mCAAmC,EAAE,CACnC,GAAG,EAAE,MAAM,KACR,oBAAoB,CAAC;YAC1B,0CAA0C,EAAE,CAC1C,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,KACV,oBAAoB,CAAC;SAC3B;KACF;CACF;AAwCD;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,aAAa,CAAC,CAA0B;IAEhD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAW7C,eAAe;IACf,SAAS,CAAC,wBAAwB,CAChC,WAAW,EAAE,MAAM,GAClB,oBAAoB;IAIvB,eAAe;IACf,SAAS,IAAI,QAAQ,CAAC,oBAAoB,CAAC;IAI3C;;OAEG;IACH,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IAIhE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAMjD;;OAEG;IACH,gBAAgB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS;IAIjE;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIlD;;OAEG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAyBnE;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,QAAQ,EACpB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,KAAK,GAAE,KAAkB,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACnB,IAAI;IAiCP;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,QAAQ,EACvB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,QAAQ,EACrB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,QAAQ,EACrB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,QAAQ,EACzB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,QAAQ,EACtB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAcP;;OAEG;IACH,UAAU,CAAC,CAAC,SAAS,QAAQ,EAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAYP;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,QAAQ,EAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAQP;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAQP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,QAAQ,EACrB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,QAAQ,EACzB,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAQP;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,QAAQ,EAC1B,cAAc,EAAE,MAAM,GAAG,KAAK,EAC9B,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAQP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,QAAQ,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAClC,KAAK,GAAE,MAAoB,GAC1B,MAAM;IAQT,QAAQ,CAAC,CAAC,SAAS,QAAQ,EACzB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,MAAM;IAIT;;;;;OAKG;IACH,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAClC,KAAK,GAAE,MAAoB,EAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACnB,IAAI;IAuBP;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,QAAQ,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAIP;;OAEG;IACH,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACjC,IAAI;IAOP;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAClE,EAAE,EAAE,EAAE,EACN,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,4BAA4B,CAAC,GAChE,IAAI;IAQP;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACjE,EAAE,EAAE,EAAE,EACN,QAAQ,CAAC,EAAE,CAAC,EACZ,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,4BAA4B,CAAC,GAChE,IAAI;IAQP;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAC7C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;IAEP,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACjE,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;IAEP,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACjE,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,CAAC,EACX,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EACjC,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;CA2BR;AAED,2CAA2C;AAC3C,eAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/packages/nightingale-logger/src/index.test.ts b/packages/nightingale-logger/src/index.test.ts index 44ef74399..496230a67 100644 --- a/packages/nightingale-logger/src/index.test.ts +++ b/packages/nightingale-logger/src/index.test.ts @@ -5,3 +5,21 @@ test('key argument', () => { const logger = new Logger(key); expect(logger.key).toBe(key); }); + +test('passing error', () => { + const error = new Error('Test'); + const logger = new Logger('test'); + logger.addRecord = jest.fn(); + logger.log(error); + expect(logger.addRecord).toHaveBeenNthCalledWith(1, { + context: undefined, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + datetime: expect.any(Date), + displayName: undefined, + extra: {}, + key: 'test', + level: 200, + message: 'Error: Test', + metadata: { error }, + }); +}); diff --git a/packages/nightingale-logger/src/index.ts b/packages/nightingale-logger/src/index.ts index 707178028..7075e48f5 100644 --- a/packages/nightingale-logger/src/index.ts +++ b/packages/nightingale-logger/src/index.ts @@ -92,6 +92,10 @@ function getConfigForLoggerRecord( return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel); } +function isError(messageOrError: Error | string): messageOrError is Error { + return messageOrError instanceof Error; +} + /** * Interface that allows you to log records. * This records are treated by handlers @@ -219,24 +223,37 @@ export class Logger { * Log a message */ log( - message: string, + messageOrError: string | Error, metadata?: T, level: Level = Level.INFO, options?: Options, ): void { - const context = metadata?.context; - if (metadata) { - delete metadata.context; + const isMessageError = isError(messageOrError); + + const message = isMessageError + ? `${messageOrError.name}: ${messageOrError.message}` + : messageOrError; + + const extendedMetadata = + isMessageError && + // eslint-disable-next-line unicorn/prefer-object-has-own + !(metadata && Object.prototype.hasOwnProperty.call(metadata, 'error')) + ? { ...metadata, error: messageOrError } + : metadata; + + const context = extendedMetadata?.context; + if (extendedMetadata) { + delete extendedMetadata.context; } - const record: LogRecord = { + const record: LogRecord> = { level, key: this.key, displayName: this.displayName, datetime: new Date(), message, context: context || this.contextObject, - metadata, + metadata: extendedMetadata as NonNullable, extra: {}, ...options, }; @@ -247,55 +264,55 @@ export class Logger { * Log a trace message */ trace( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.TRACE, { metadataStyles }); + this.log(messageOrError, metadata, Level.TRACE, { metadataStyles }); } /** * Log a debug message */ debug( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.DEBUG, { metadataStyles }); + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles }); } /** * Notice an info message */ notice( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.NOTICE, { metadataStyles }); + this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles }); } /** * Log an info message */ info( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.INFO, { metadataStyles }); + this.log(messageOrError, metadata, Level.INFO, { metadataStyles }); } /** * Log a warn message */ warn( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.WARN, { metadataStyles }); + this.log(messageOrError, metadata, Level.WARN, { metadataStyles }); } /** @@ -312,31 +329,22 @@ export class Logger { * ``` */ error( - message: string | Error, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - if (message instanceof Error) { - const extendedMetadata = { - ...metadata, - error: message, - }; - message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`; - this.log(message, extendedMetadata, Level.ERROR, { metadataStyles }); - } else { - this.log(message, metadata, Level.ERROR, { metadataStyles }); - } + this.log(messageOrError, metadata, Level.ERROR, { metadataStyles }); } /** * Log an critical message */ critical( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.CRITICAL, { metadataStyles }); + this.log(messageOrError, metadata, Level.CRITICAL, { metadataStyles }); } /** @@ -353,22 +361,22 @@ export class Logger { * } */ fatal( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.FATAL, { metadataStyles }); + this.log(messageOrError, metadata, Level.FATAL, { metadataStyles }); } /** * Log an alert message */ alert( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.ALERT, { metadataStyles }); + this.log(messageOrError, metadata, Level.ALERT, { metadataStyles }); } /** @@ -457,22 +465,22 @@ export class Logger { * Alias for infoFail */ fail( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.infoFail(message, metadata, metadataStyles); + this.infoFail(messageOrError, metadata, metadataStyles); } /** * Log an info fail message */ infoFail( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.INFO, { + this.log(messageOrError, metadata, Level.INFO, { metadataStyles, symbol: '✖', styles: ['red', 'bold'], @@ -483,11 +491,11 @@ export class Logger { * Log an debug fail message */ debugFail( - message: string, + messageOrError: string | Error, metadata?: T, metadataStyles?: MetadataStyles, ): void { - this.log(message, metadata, Level.DEBUG, { + this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles, symbol: '✖', styles: ['red'],