@@ -196,7 +196,7 @@ export class AwsOpentelemetryConfigurator {
196196 // default SpanProcessors with Span Exporters wrapped inside AwsMetricAttributesSpanExporter
197197 const awsSpanProcessorProvider : AwsSpanProcessorProvider = new AwsSpanProcessorProvider ( this . resource ) ;
198198 this . spanProcessors = awsSpanProcessorProvider . getSpanProcessors ( ) ;
199- this . logRecordProcessors = new AwsLoggerProcessorProvider ( ) . getlogRecordProcessors ( ) ;
199+ this . logRecordProcessors = AwsLoggerProcessorProvider . getlogRecordProcessors ( ) ;
200200 AwsOpentelemetryConfigurator . customizeSpanProcessors ( this . spanProcessors , this . resource ) ;
201201 }
202202
@@ -424,18 +424,20 @@ export class ApplicationSignalsExporterProvider {
424424// once we upgrade to @opentelemetry /core 2.0.0 or higher, which provides these methods natively.
425425//
426426export class AwsLoggerProcessorProvider {
427- private _logRecordProcessors : LogRecordProcessor [ ] = [ ] ;
427+ public static getlogRecordProcessors ( ) : LogRecordProcessor [ ] {
428+ const exporters = AwsLoggerProcessorProvider . configureLogExportersFromEnv ( ) ;
428429
429- constructor ( ) {
430- this . configureLoggerProviderFromEnv ( ) ;
431- }
432-
433- public getlogRecordProcessors ( ) {
434- return this . _logRecordProcessors ;
430+ return exporters . map ( exporter => {
431+ if ( exporter instanceof ConsoleLogRecordExporter ) {
432+ return new SimpleLogRecordProcessor ( exporter ) ;
433+ } else {
434+ return new BatchLogRecordProcessor ( exporter ) ;
435+ }
436+ } ) ;
435437 }
436438
437- private configureLoggerProviderFromEnv ( ) : void {
438- const otlpExporterLogsEndpoint = process . env [ ' OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' ] ;
439+ static configureLogExportersFromEnv ( ) : LogRecordExporter [ ] {
440+ const otlpExporterLogsEndpoint = process . env . OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ;
439441 const enabledExporters = AwsLoggerProcessorProvider . getStringListFromEnv ( 'OTEL_LOGS_EXPORTER' ) ?? [ ] ;
440442
441443 if ( enabledExporters . length === 0 ) {
@@ -445,7 +447,7 @@ export class AwsLoggerProcessorProvider {
445447
446448 if ( enabledExporters . includes ( 'none' ) ) {
447449 diag . info ( 'OTEL_LOGS_EXPORTER contains "none". Logger provider will not be initialized.' ) ;
448- return ;
450+ return [ ] ;
449451 }
450452
451453 const exporters : LogRecordExporter [ ] = [ ] ;
@@ -500,15 +502,7 @@ export class AwsLoggerProcessorProvider {
500502 }
501503 } ) ;
502504
503- if ( exporters . length > 0 ) {
504- this . _logRecordProcessors = exporters . map ( exporter => {
505- if ( exporter instanceof ConsoleLogRecordExporter ) {
506- return new SimpleLogRecordProcessor ( exporter ) ;
507- } else {
508- return new BatchLogRecordProcessor ( exporter ) ;
509- }
510- } ) ;
511- }
505+ return exporters ;
512506 }
513507
514508 /**
0 commit comments