diff --git a/nodejs/packages/layer/src/wrapper.ts b/nodejs/packages/layer/src/wrapper.ts index 9953988d88..a39665b739 100644 --- a/nodejs/packages/layer/src/wrapper.ts +++ b/nodejs/packages/layer/src/wrapper.ts @@ -46,6 +46,7 @@ import { } from '@opentelemetry/instrumentation-aws-lambda'; import { AWSXRayPropagator } from '@opentelemetry/propagator-aws-xray'; import { AWSXRayLambdaPropagator } from '@opentelemetry/propagator-aws-xray-lambda'; +import { LogRecordProcessor } from '@opentelemetry/sdk-logs'; const defaultInstrumentationList = [ 'dns', @@ -503,25 +504,26 @@ async function initializeLoggerProvider( ); const logExporter = new OTLPLogExporter(); + const logRecordProcessors: LogRecordProcessor[] = []; const loggerConfig = { resource, + processors: logRecordProcessors, }; - const loggerProvider = new LoggerProvider(loggerConfig); - if (typeof configureLoggerProvider === 'function') { - configureLoggerProvider(loggerProvider); - } else { - loggerProvider.addLogRecordProcessor( - new BatchLogRecordProcessor(logExporter), - ); - logs.setGlobalLoggerProvider(loggerProvider); + if (typeof configureLoggerProvider !== 'function') { + logRecordProcessors.push(new BatchLogRecordProcessor(logExporter)); } - // Logging for debug if (logLevel === DiagLogLevel.DEBUG) { - loggerProvider.addLogRecordProcessor( + logRecordProcessors.push( new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()), ); } + const loggerProvider = new LoggerProvider(loggerConfig); + if (typeof configureLoggerProvider === 'function') { + configureLoggerProvider(loggerProvider); + } else { + logs.setGlobalLoggerProvider(loggerProvider); + } logsDisableFunction = () => { logs.disable();