@@ -320,14 +320,40 @@ describe('BunyanInstrumentation', () => {
320320 assert . strictEqual ( rec . attributes . aProperty , 'bar' ) ;
321321 } ) ;
322322
323- it ( 'log record level configuration (higher than default)' , ( ) => {
324- instrumentation . setConfig ( { logSeverity : SeverityNumber . WARN } ) ;
323+ it ( 'log record error level' , ( ) => {
324+ instrumentation . setConfig ( { logSeverity : SeverityNumber . FATAL } ) ;
325+ // Setting `logSeverity` only has an impact on Loggers created
326+ // *after* it is set. So we cannot test with the `log` created in
327+ // `beforeEach()` above.
328+ log = Logger . createLogger ( { name : 'test-logger-name' , stream } ) ;
329+ log . error ( 'error log' ) ;
330+ log . fatal ( 'fatal log' ) ;
331+ const logRecords = memExporter . getFinishedLogRecords ( ) ;
332+ // Only one log record match configured severity
333+ assert . strictEqual ( logRecords . length , 1 ) ;
334+ assert . strictEqual ( logRecords [ 0 ] . body , 'fatal log' ) ;
335+ } ) ;
325336
337+ it ( 'log record error level' , ( ) => {
338+ instrumentation . setConfig ( { logSeverity : SeverityNumber . ERROR } ) ;
326339 // Setting `logSeverity` only has an impact on Loggers created
327340 // *after* it is set. So we cannot test with the `log` created in
328341 // `beforeEach()` above.
329342 log = Logger . createLogger ( { name : 'test-logger-name' , stream } ) ;
343+ log . warn ( 'warn log' ) ;
344+ log . error ( 'error log' ) ;
345+ const logRecords = memExporter . getFinishedLogRecords ( ) ;
346+ // Only one log record match configured severity
347+ assert . strictEqual ( logRecords . length , 1 ) ;
348+ assert . strictEqual ( logRecords [ 0 ] . body , 'error log' ) ;
349+ } ) ;
330350
351+ it ( 'log record warn level' , ( ) => {
352+ instrumentation . setConfig ( { logSeverity : SeverityNumber . WARN } ) ;
353+ // Setting `logSeverity` only has an impact on Loggers created
354+ // *after* it is set. So we cannot test with the `log` created in
355+ // `beforeEach()` above.
356+ log = Logger . createLogger ( { name : 'test-logger-name' , stream } ) ;
331357 log . info ( 'info log' ) ;
332358 log . warn ( 'warn log' ) ;
333359 const logRecords = memExporter . getFinishedLogRecords ( ) ;
@@ -336,12 +362,25 @@ describe('BunyanInstrumentation', () => {
336362 assert . strictEqual ( logRecords [ 0 ] . body , 'warn log' ) ;
337363 } ) ;
338364
339- it ( 'log record level configuration (lower than default)' , ( ) => {
365+ it ( 'log record info level' , ( ) => {
366+ instrumentation . setConfig ( { logSeverity : SeverityNumber . INFO } ) ;
367+ // Setting `logSeverity` only has an impact on Loggers created
368+ // *after* it is set. So we cannot test with the `log` created in
369+ // `beforeEach()` above.
370+ log = Logger . createLogger ( { name : 'test-logger-name' , stream } ) ;
371+ log . debug ( 'debug log' ) ;
372+ log . info ( 'info log' ) ;
373+ const logRecords = memExporter . getFinishedLogRecords ( ) ;
374+ // Only one log record match configured severity
375+ assert . strictEqual ( logRecords . length , 1 ) ;
376+ assert . strictEqual ( logRecords [ 0 ] . body , 'info log' ) ;
377+ } ) ;
378+
379+ it ( 'log record debug level' , ( ) => {
340380 instrumentation . setConfig ( { logSeverity : SeverityNumber . DEBUG } ) ;
341381 log = Logger . createLogger ( { name : 'test-logger-name' , stream } ) ;
342382 log . info ( 'info log' ) ;
343383 log . debug ( 'debug log' ) ;
344-
345384 // Just the log.info() writes to `stream`.
346385 sinon . assert . calledOnce ( writeSpy ) ;
347386 // Both log.info() and log.debug() should be written to the OTel Logs SDK.
@@ -350,6 +389,22 @@ describe('BunyanInstrumentation', () => {
350389 assert . strictEqual ( logRecords [ 0 ] . body , 'info log' ) ;
351390 assert . strictEqual ( logRecords [ 1 ] . body , 'debug log' ) ;
352391 } ) ;
392+
393+ it ( 'log record trace level' , ( ) => {
394+ instrumentation . setConfig ( { logSeverity : SeverityNumber . TRACE } ) ;
395+ log = Logger . createLogger ( { name : 'test-logger-name' , stream } ) ;
396+ log . info ( 'info log' ) ;
397+ log . debug ( 'debug log' ) ;
398+ log . debug ( 'trace log' ) ;
399+ // Just the log.info() writes to `stream`.
400+ sinon . assert . calledOnce ( writeSpy ) ;
401+ // Both log.info() and log.debug() should be written to the OTel Logs SDK.
402+ const logRecords = memExporter . getFinishedLogRecords ( ) ;
403+ assert . strictEqual ( logRecords . length , 3 ) ;
404+ assert . strictEqual ( logRecords [ 0 ] . body , 'info log' ) ;
405+ assert . strictEqual ( logRecords [ 1 ] . body , 'debug log' ) ;
406+ assert . strictEqual ( logRecords [ 2 ] . body , 'trace log' ) ;
407+ } ) ;
353408 } ) ;
354409
355410 describe ( 'disabled instrumentation' , ( ) => {
0 commit comments