nightingale-logger 11.7.4 → 11.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [11.8.0](https://github.com/christophehurpeau/nightingale/compare/v11.7.4...v11.8.0) (2021-11-27)
7
+
8
+
9
+ ### Features
10
+
11
+ * **nightingale-logger:** support passing Error to any of the basic methods ([c1fda3e](https://github.com/christophehurpeau/nightingale/commit/c1fda3e5686f4c86f96d2cb2581239d2394bcf39))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [11.7.4](https://github.com/christophehurpeau/nightingale/compare/v11.7.3...v11.7.4) (2021-11-27)
7
18
 
8
19
 
@@ -38,6 +38,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
38
38
  function getConfigForLoggerRecord(key, recordLevel) {
39
39
  return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
40
40
  }
41
+
42
+ function isError(messageOrError) {
43
+ return messageOrError instanceof Error;
44
+ }
41
45
  /**
42
46
  * Interface that allows you to log records.
43
47
  * This records are treated by handlers
@@ -170,15 +174,21 @@ var Logger = /*#__PURE__*/function () {
170
174
  */
171
175
  ;
172
176
 
173
- _proto.log = function log(message, metadata, level, options) {
177
+ _proto.log = function log(messageOrError, metadata, level, options) {
174
178
  if (level === void 0) {
175
179
  level = nightingaleLevels.Level.INFO;
176
180
  }
177
181
 
178
- var context = metadata == null ? void 0 : metadata.context;
182
+ var isMessageError = isError(messageOrError);
183
+ var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
184
+ var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own
185
+ !Object.prototype.hasOwnProperty.call(metadata, 'error') ? _extends__default({}, metadata, {
186
+ error: messageOrError
187
+ }) : metadata;
188
+ var context = extendedMetadata == null ? void 0 : extendedMetadata.context;
179
189
 
180
- if (metadata) {
181
- delete metadata.context;
190
+ if (extendedMetadata) {
191
+ delete extendedMetadata.context;
182
192
  }
183
193
 
184
194
  var record = _extends__default({
@@ -188,7 +198,7 @@ var Logger = /*#__PURE__*/function () {
188
198
  datetime: new Date(),
189
199
  message,
190
200
  context: context || this.contextObject,
191
- metadata,
201
+ metadata: extendedMetadata,
192
202
  extra: {}
193
203
  }, options);
194
204
 
@@ -199,8 +209,8 @@ var Logger = /*#__PURE__*/function () {
199
209
  */
200
210
  ;
201
211
 
202
- _proto.trace = function trace(message, metadata, metadataStyles) {
203
- this.log(message, metadata, nightingaleLevels.Level.TRACE, {
212
+ _proto.trace = function trace(messageOrError, metadata, metadataStyles) {
213
+ this.log(messageOrError, metadata, nightingaleLevels.Level.TRACE, {
204
214
  metadataStyles
205
215
  });
206
216
  }
@@ -209,8 +219,8 @@ var Logger = /*#__PURE__*/function () {
209
219
  */
210
220
  ;
211
221
 
212
- _proto.debug = function debug(message, metadata, metadataStyles) {
213
- this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
222
+ _proto.debug = function debug(messageOrError, metadata, metadataStyles) {
223
+ this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, {
214
224
  metadataStyles
215
225
  });
216
226
  }
@@ -219,8 +229,8 @@ var Logger = /*#__PURE__*/function () {
219
229
  */
220
230
  ;
221
231
 
222
- _proto.notice = function notice(message, metadata, metadataStyles) {
223
- this.log(message, metadata, nightingaleLevels.Level.NOTICE, {
232
+ _proto.notice = function notice(messageOrError, metadata, metadataStyles) {
233
+ this.log(messageOrError, metadata, nightingaleLevels.Level.NOTICE, {
224
234
  metadataStyles
225
235
  });
226
236
  }
@@ -229,8 +239,8 @@ var Logger = /*#__PURE__*/function () {
229
239
  */
230
240
  ;
231
241
 
232
- _proto.info = function info(message, metadata, metadataStyles) {
233
- this.log(message, metadata, nightingaleLevels.Level.INFO, {
242
+ _proto.info = function info(messageOrError, metadata, metadataStyles) {
243
+ this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, {
234
244
  metadataStyles
235
245
  });
236
246
  }
@@ -239,8 +249,8 @@ var Logger = /*#__PURE__*/function () {
239
249
  */
240
250
  ;
241
251
 
242
- _proto.warn = function warn(message, metadata, metadataStyles) {
243
- this.log(message, metadata, nightingaleLevels.Level.WARN, {
252
+ _proto.warn = function warn(messageOrError, metadata, metadataStyles) {
253
+ this.log(messageOrError, metadata, nightingaleLevels.Level.WARN, {
244
254
  metadataStyles
245
255
  });
246
256
  }
@@ -259,29 +269,18 @@ var Logger = /*#__PURE__*/function () {
259
269
  */
260
270
  ;
261
271
 
262
- _proto.error = function error(message, metadata, metadataStyles) {
263
- if (message instanceof Error) {
264
- var extendedMetadata = _extends__default({}, metadata, {
265
- error: message
266
- });
267
-
268
- message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;
269
- this.log(message, extendedMetadata, nightingaleLevels.Level.ERROR, {
270
- metadataStyles
271
- });
272
- } else {
273
- this.log(message, metadata, nightingaleLevels.Level.ERROR, {
274
- metadataStyles
275
- });
276
- }
272
+ _proto.error = function error(messageOrError, metadata, metadataStyles) {
273
+ this.log(messageOrError, metadata, nightingaleLevels.Level.ERROR, {
274
+ metadataStyles
275
+ });
277
276
  }
278
277
  /**
279
278
  * Log an critical message
280
279
  */
281
280
  ;
282
281
 
283
- _proto.critical = function critical(message, metadata, metadataStyles) {
284
- this.log(message, metadata, nightingaleLevels.Level.CRITICAL, {
282
+ _proto.critical = function critical(messageOrError, metadata, metadataStyles) {
283
+ this.log(messageOrError, metadata, nightingaleLevels.Level.CRITICAL, {
285
284
  metadataStyles
286
285
  });
287
286
  }
@@ -300,8 +299,8 @@ var Logger = /*#__PURE__*/function () {
300
299
  */
301
300
  ;
302
301
 
303
- _proto.fatal = function fatal(message, metadata, metadataStyles) {
304
- this.log(message, metadata, nightingaleLevels.Level.FATAL, {
302
+ _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) {
303
+ this.log(messageOrError, metadata, nightingaleLevels.Level.FATAL, {
305
304
  metadataStyles
306
305
  });
307
306
  }
@@ -310,8 +309,8 @@ var Logger = /*#__PURE__*/function () {
310
309
  */
311
310
  ;
312
311
 
313
- _proto.alert = function alert(message, metadata, metadataStyles) {
314
- this.log(message, metadata, nightingaleLevels.Level.ALERT, {
312
+ _proto.alert = function alert(messageOrError, metadata, metadataStyles) {
313
+ this.log(messageOrError, metadata, nightingaleLevels.Level.ALERT, {
315
314
  metadataStyles
316
315
  });
317
316
  }
@@ -368,16 +367,16 @@ var Logger = /*#__PURE__*/function () {
368
367
  */
369
368
  ;
370
369
 
371
- _proto.fail = function fail(message, metadata, metadataStyles) {
372
- this.infoFail(message, metadata, metadataStyles);
370
+ _proto.fail = function fail(messageOrError, metadata, metadataStyles) {
371
+ this.infoFail(messageOrError, metadata, metadataStyles);
373
372
  }
374
373
  /**
375
374
  * Log an info fail message
376
375
  */
377
376
  ;
378
377
 
379
- _proto.infoFail = function infoFail(message, metadata, metadataStyles) {
380
- this.log(message, metadata, nightingaleLevels.Level.INFO, {
378
+ _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) {
379
+ this.log(messageOrError, metadata, nightingaleLevels.Level.INFO, {
381
380
  metadataStyles,
382
381
  symbol: '✖',
383
382
  styles: ['red', 'bold']
@@ -388,8 +387,8 @@ var Logger = /*#__PURE__*/function () {
388
387
  */
389
388
  ;
390
389
 
391
- _proto.debugFail = function debugFail(message, metadata, metadataStyles) {
392
- this.log(message, metadata, nightingaleLevels.Level.DEBUG, {
390
+ _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) {
391
+ this.log(messageOrError, metadata, nightingaleLevels.Level.DEBUG, {
393
392
  metadataStyles,
394
393
  symbol: '✖',
395
394
  styles: ['red']
@@ -1 +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<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\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<string, ComputedConfigForKey>;\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<string, unknown>;\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<ComputedConfigForKey> {\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<string, unknown>): 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<Record<string, unknown>> | 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<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): 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<T extends Metadata>(record: Readonly<LogRecord<T>>): 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<T extends Metadata>(\n message: string,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\n ): void {\n const context = metadata?.context;\n if (metadata) {\n delete metadata.context;\n }\n\n const record: LogRecord<T> = {\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(message, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\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<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\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<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\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<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | 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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"}
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<T extends Metadata> {\n symbol?: string;\n metadataStyles?: MetadataStyles<T>;\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<string, ComputedConfigForKey>;\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<string, unknown>;\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<ComputedConfigForKey> {\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<string, unknown>): 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<Record<string, unknown>> | 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<string, unknown>): void {\n this.contextObject = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Record<string, unknown>): 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<T extends Metadata>(record: Readonly<LogRecord<T>>): 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<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n level: Level = Level.INFO,\n options?: Options<T>,\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<NonNullable<typeof extendedMetadata>> = {\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<typeof extendedMetadata>,\n extra: {},\n ...options,\n };\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.log(messageOrError, metadata, Level.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue<T extends Metadata>(\n value: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n varName: string,\n varValue: unknown,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.infoFail(messageOrError, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n messageOrError: string | Error,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n message?: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata>(\n startTime: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n level: number = Level.DEBUG,\n options?: Options<T>,\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<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\n ): void {\n this.timeEnd(time, message, metadata, metadataStyles, Level.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd<T extends Metadata>(\n time: number,\n message: string,\n metadata?: T,\n metadataStyles?: MetadataStyles<T>,\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<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\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<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata?: T,\n metadataStyles?: MetadataStyles<T & ExtendedFunctionNameMetadata>,\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<Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n metadata: T,\n metadataStyles: MetadataStyles<T>,\n callback: () => void,\n ): void;\n\n wrap<T extends Metadata, Fn extends (...args: unknown[]) => unknown>(\n fn: Fn,\n option1: T | (() => void),\n option2?: MetadataStyles<T> | (() => void),\n callback?: () => void,\n ): void {\n let metadata: T | undefined;\n let metadataStyles: MetadataStyles<T> | 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,uBAAK,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,uBAAK,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,yBAGSA,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,uBAAK,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,yBACjBL,QADiB;AAEpB6C,MAAAA,YAFoB;AAGpBI,MAAAA,MAAM,EAAEL;AAHY,MAAtB;;AAMA,SAAKlD,GAAL,CAASC,OAAT,EAAkBU,gBAAlB,EAAoC5C,KAApC,wBAAgDwC,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,uBAAK,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,uBAAK,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,yBACjBL,QADiB;AAEpBsD,MAAAA,YAAY,EAAED,EAAE,CAACjD;AAFG,MAAtB;;AAIA,SAAKV,GAAL,CAAS,OAAT,EAAkBW,gBAAlB,EAAoCd,uBAAK,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,yBACjBL,QADiB;AAEpBsD,MAAAA,YAAY,EAAED,EAAE,CAACjD;AAFG,MAAtB;;AAIA,SAAKV,GAAL,CAAS,MAAT,EAAiBW,gBAAjB,EAAmCd,uBAAK,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;;;;;;"}
@@ -31,6 +31,10 @@ if (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {
31
31
  function getConfigForLoggerRecord(key, recordLevel) {
32
32
  return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);
33
33
  }
34
+
35
+ function isError(messageOrError) {
36
+ return messageOrError instanceof Error;
37
+ }
34
38
  /**
35
39
  * Interface that allows you to log records.
36
40
  * This records are treated by handlers
@@ -163,15 +167,21 @@ var Logger = /*#__PURE__*/function () {
163
167
  */
164
168
  ;
165
169
 
166
- _proto.log = function log(message, metadata, level, options) {
170
+ _proto.log = function log(messageOrError, metadata, level, options) {
167
171
  if (level === void 0) {
168
172
  level = Level.INFO;
169
173
  }
170
174
 
171
- var context = metadata == null ? void 0 : metadata.context;
175
+ var isMessageError = isError(messageOrError);
176
+ var message = isMessageError ? `${messageOrError.name}: ${messageOrError.message}` : messageOrError;
177
+ var extendedMetadata = isMessageError && // eslint-disable-next-line unicorn/prefer-object-has-own
178
+ !Object.prototype.hasOwnProperty.call(metadata, 'error') ? _extends({}, metadata, {
179
+ error: messageOrError
180
+ }) : metadata;
181
+ var context = extendedMetadata == null ? void 0 : extendedMetadata.context;
172
182
 
173
- if (metadata) {
174
- delete metadata.context;
183
+ if (extendedMetadata) {
184
+ delete extendedMetadata.context;
175
185
  }
176
186
 
177
187
  var record = _extends({
@@ -181,7 +191,7 @@ var Logger = /*#__PURE__*/function () {
181
191
  datetime: new Date(),
182
192
  message,
183
193
  context: context || this.contextObject,
184
- metadata,
194
+ metadata: extendedMetadata,
185
195
  extra: {}
186
196
  }, options);
187
197
 
@@ -192,8 +202,8 @@ var Logger = /*#__PURE__*/function () {
192
202
  */
193
203
  ;
194
204
 
195
- _proto.trace = function trace(message, metadata, metadataStyles) {
196
- this.log(message, metadata, Level.TRACE, {
205
+ _proto.trace = function trace(messageOrError, metadata, metadataStyles) {
206
+ this.log(messageOrError, metadata, Level.TRACE, {
197
207
  metadataStyles
198
208
  });
199
209
  }
@@ -202,8 +212,8 @@ var Logger = /*#__PURE__*/function () {
202
212
  */
203
213
  ;
204
214
 
205
- _proto.debug = function debug(message, metadata, metadataStyles) {
206
- this.log(message, metadata, Level.DEBUG, {
215
+ _proto.debug = function debug(messageOrError, metadata, metadataStyles) {
216
+ this.log(messageOrError, metadata, Level.DEBUG, {
207
217
  metadataStyles
208
218
  });
209
219
  }
@@ -212,8 +222,8 @@ var Logger = /*#__PURE__*/function () {
212
222
  */
213
223
  ;
214
224
 
215
- _proto.notice = function notice(message, metadata, metadataStyles) {
216
- this.log(message, metadata, Level.NOTICE, {
225
+ _proto.notice = function notice(messageOrError, metadata, metadataStyles) {
226
+ this.log(messageOrError, metadata, Level.NOTICE, {
217
227
  metadataStyles
218
228
  });
219
229
  }
@@ -222,8 +232,8 @@ var Logger = /*#__PURE__*/function () {
222
232
  */
223
233
  ;
224
234
 
225
- _proto.info = function info(message, metadata, metadataStyles) {
226
- this.log(message, metadata, Level.INFO, {
235
+ _proto.info = function info(messageOrError, metadata, metadataStyles) {
236
+ this.log(messageOrError, metadata, Level.INFO, {
227
237
  metadataStyles
228
238
  });
229
239
  }
@@ -232,8 +242,8 @@ var Logger = /*#__PURE__*/function () {
232
242
  */
233
243
  ;
234
244
 
235
- _proto.warn = function warn(message, metadata, metadataStyles) {
236
- this.log(message, metadata, Level.WARN, {
245
+ _proto.warn = function warn(messageOrError, metadata, metadataStyles) {
246
+ this.log(messageOrError, metadata, Level.WARN, {
237
247
  metadataStyles
238
248
  });
239
249
  }
@@ -252,29 +262,18 @@ var Logger = /*#__PURE__*/function () {
252
262
  */
253
263
  ;
254
264
 
255
- _proto.error = function error(message, metadata, metadataStyles) {
256
- if (message instanceof Error) {
257
- var extendedMetadata = _extends({}, metadata, {
258
- error: message
259
- });
260
-
261
- message = `${extendedMetadata.error.name}: ${extendedMetadata.error.message}`;
262
- this.log(message, extendedMetadata, Level.ERROR, {
263
- metadataStyles
264
- });
265
- } else {
266
- this.log(message, metadata, Level.ERROR, {
267
- metadataStyles
268
- });
269
- }
265
+ _proto.error = function error(messageOrError, metadata, metadataStyles) {
266
+ this.log(messageOrError, metadata, Level.ERROR, {
267
+ metadataStyles
268
+ });
270
269
  }
271
270
  /**
272
271
  * Log an critical message
273
272
  */
274
273
  ;
275
274
 
276
- _proto.critical = function critical(message, metadata, metadataStyles) {
277
- this.log(message, metadata, Level.CRITICAL, {
275
+ _proto.critical = function critical(messageOrError, metadata, metadataStyles) {
276
+ this.log(messageOrError, metadata, Level.CRITICAL, {
278
277
  metadataStyles
279
278
  });
280
279
  }
@@ -293,8 +292,8 @@ var Logger = /*#__PURE__*/function () {
293
292
  */
294
293
  ;
295
294
 
296
- _proto.fatal = function fatal(message, metadata, metadataStyles) {
297
- this.log(message, metadata, Level.FATAL, {
295
+ _proto.fatal = function fatal(messageOrError, metadata, metadataStyles) {
296
+ this.log(messageOrError, metadata, Level.FATAL, {
298
297
  metadataStyles
299
298
  });
300
299
  }
@@ -303,8 +302,8 @@ var Logger = /*#__PURE__*/function () {
303
302
  */
304
303
  ;
305
304
 
306
- _proto.alert = function alert(message, metadata, metadataStyles) {
307
- this.log(message, metadata, Level.ALERT, {
305
+ _proto.alert = function alert(messageOrError, metadata, metadataStyles) {
306
+ this.log(messageOrError, metadata, Level.ALERT, {
308
307
  metadataStyles
309
308
  });
310
309
  }
@@ -361,16 +360,16 @@ var Logger = /*#__PURE__*/function () {
361
360
  */
362
361
  ;
363
362
 
364
- _proto.fail = function fail(message, metadata, metadataStyles) {
365
- this.infoFail(message, metadata, metadataStyles);
363
+ _proto.fail = function fail(messageOrError, metadata, metadataStyles) {
364
+ this.infoFail(messageOrError, metadata, metadataStyles);
366
365
  }
367
366
  /**
368
367
  * Log an info fail message
369
368
  */
370
369
  ;
371
370
 
372
- _proto.infoFail = function infoFail(message, metadata, metadataStyles) {
373
- this.log(message, metadata, Level.INFO, {
371
+ _proto.infoFail = function infoFail(messageOrError, metadata, metadataStyles) {
372
+ this.log(messageOrError, metadata, Level.INFO, {
374
373
  metadataStyles,
375
374
  symbol: '✖',
376
375
  styles: ['red', 'bold']
@@ -381,8 +380,8 @@ var Logger = /*#__PURE__*/function () {
381
380
  */
382
381
  ;
383
382
 
384
- _proto.debugFail = function debugFail(message, metadata, metadataStyles) {
385
- this.log(message, metadata, Level.DEBUG, {
383
+ _proto.debugFail = function debugFail(messageOrError, metadata, metadataStyles) {
384
+ this.log(messageOrError, metadata, Level.DEBUG, {
386
385
  metadataStyles,
387
386
  symbol: '✖',
388
387
  styles: ['red']