@@ -15,6 +15,7 @@ import {
15
15
import {
16
16
BatchLogRecordProcessor ,
17
17
LoggerProvider ,
18
+ LogRecordExporter ,
18
19
SimpleLogRecordProcessor ,
19
20
} from "@opentelemetry/sdk-logs" ;
20
21
import {
@@ -87,6 +88,7 @@ export type TracingSDKConfig = {
87
88
resource ?: IResource ;
88
89
instrumentations ?: Instrumentation [ ] ;
89
90
exporters ?: SpanExporter [ ] ;
91
+ logExporters ?: LogRecordExporter [ ] ;
90
92
diagLogLevel ?: TracingDiagnosticLogLevel ;
91
93
} ;
92
94
@@ -210,6 +212,19 @@ export class TracingSDK {
210
212
)
211
213
) ;
212
214
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
+
213
228
this . _logProvider = loggerProvider ;
214
229
this . _spanExporter = spanExporter ;
215
230
this . _traceProvider = traceProvider ;
0 commit comments