UNPKG

@opentelemetry/api

Version:
1 lines • 2.49 kB
{"version":3,"file":"ProxyLogger.mjs","names":[],"sources":["../../src/logs/ProxyLogger.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '../context/types';\nimport { NOOP_LOGGER } from './NoopLogger';\nimport type { Logger } from './Logger';\nimport type { LoggerOptions } from './LoggerOptions';\nimport type { LogRecord } from './LogRecord';\nimport type { SeverityNumber } from './LogRecord';\n\nexport class ProxyLogger implements Logger {\n // When a real implementation is provided, this will be it\n private _delegate?: Logger;\n private _provider: LoggerDelegator;\n public readonly name: string;\n public readonly version?: string;\n public readonly options?: LoggerOptions;\n\n constructor(\n provider: LoggerDelegator,\n name: string,\n version?: string,\n options?: LoggerOptions\n ) {\n this._provider = provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n\n /**\n * Emit a log record. This method should only be used by log appenders.\n *\n * @param logRecord\n */\n emit(logRecord: LogRecord): void {\n this._getLogger().emit(logRecord);\n }\n\n enabled(options?: {\n context?: Context;\n severityNumber?: SeverityNumber;\n eventName?: string;\n }): boolean {\n return this._getLogger().enabled(options);\n }\n\n /**\n * Try to get a logger from the proxy logger provider.\n * If the proxy logger provider has no delegate, return a noop logger.\n */\n private _getLogger() {\n if (this._delegate) {\n return this._delegate;\n }\n const logger = this._provider._getDelegateLogger(\n this.name,\n this.version,\n this.options\n );\n if (!logger) {\n return NOOP_LOGGER;\n }\n this._delegate = logger;\n return this._delegate;\n }\n}\n\nexport interface LoggerDelegator {\n _getDelegateLogger(\n name: string,\n version?: string,\n options?: LoggerOptions\n ): Logger | undefined;\n}\n"],"mappings":";;AAYA,IAAa,cAAb,MAA2C;CAQzC,YACE,UACA,MACA,SACA,SACA;EACA,KAAK,YAAY;EACjB,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,UAAU;CACjB;;;;;;CAOA,KAAK,WAA4B;EAC/B,KAAK,WAAW,CAAC,CAAC,KAAK,SAAS;CAClC;CAEA,QAAQ,SAII;EACV,OAAO,KAAK,WAAW,CAAC,CAAC,QAAQ,OAAO;CAC1C;;;;;CAMA,aAAqB;EACnB,IAAI,KAAK,WACP,OAAO,KAAK;EAEd,MAAM,SAAS,KAAK,UAAU,mBAC5B,KAAK,MACL,KAAK,SACL,KAAK,OACP;EACA,IAAI,CAAC,QACH,OAAO;EAET,KAAK,YAAY;EACjB,OAAO,KAAK;CACd;AACF"}