@@ -15,6 +15,7 @@ import {
1515import {
1616 BatchLogRecordProcessor ,
1717 LoggerProvider ,
18+ LogRecordExporter ,
1819 SimpleLogRecordProcessor ,
1920} from "@opentelemetry/sdk-logs" ;
2021import {
@@ -87,6 +88,7 @@ export type TracingSDKConfig = {
8788 resource ?: IResource ;
8889 instrumentations ?: Instrumentation [ ] ;
8990 exporters ?: SpanExporter [ ] ;
91+ logExporters ?: LogRecordExporter [ ] ;
9092 diagLogLevel ?: TracingDiagnosticLogLevel ;
9193} ;
9294
@@ -210,6 +212,19 @@ export class TracingSDK {
210212 )
211213 ) ;
212214
215+ for ( const externalLogExporter of config . logExporters ?? [ ] ) {
216+ loggerProvider . addLogRecordProcessor (
217+ getEnvVar ( "OTEL_BATCH_PROCESSING_ENABLED" ) === "1"
218+ ? new BatchLogRecordProcessor ( externalLogExporter , {
219+ maxExportBatchSize : parseInt ( getEnvVar ( "OTEL_LOG_MAX_EXPORT_BATCH_SIZE" ) ?? "64" ) ,
220+ scheduledDelayMillis : parseInt ( getEnvVar ( "OTEL_LOG_SCHEDULED_DELAY_MILLIS" ) ?? "200" ) ,
221+ exportTimeoutMillis : parseInt ( getEnvVar ( "OTEL_LOG_EXPORT_TIMEOUT_MILLIS" ) ?? "30000" ) ,
222+ maxQueueSize : parseInt ( getEnvVar ( "OTEL_LOG_MAX_QUEUE_SIZE" ) ?? "512" ) ,
223+ } )
224+ : new SimpleLogRecordProcessor ( externalLogExporter )
225+ ) ;
226+ }
227+
213228 this . _logProvider = loggerProvider ;
214229 this . _spanExporter = spanExporter ;
215230 this . _traceProvider = traceProvider ;
0 commit comments