@@ -1345,7 +1345,11 @@ describe('class MongoLogger', async function () {
1345
1345
1346
1346
describe ( 'log' , async function ( ) {
1347
1347
const componentSeverities : MongoLoggerOptions [ 'componentSeverities' ] = {
1348
- default : 'error'
1348
+ command : 'trace' ,
1349
+ topology : 'trace' ,
1350
+ serverSelection : 'trace' ,
1351
+ connection : 'trace' ,
1352
+ client : 'trace'
1349
1353
} as any ;
1350
1354
describe ( 'sync stream failure handling' , function ( ) {
1351
1355
context ( 'when stream is not stderr' , function ( ) {
@@ -1373,15 +1377,18 @@ describe('class MongoLogger', async function () {
1373
1377
logDestinationIsStdErr : false
1374
1378
} ) ;
1375
1379
// print random message at the debug level
1376
- logger . debug ( 'random message' ) ;
1380
+ logger . debug ( 'client' , ' random message') ;
1377
1381
let stderrStubCall = stderrStub . write . getCall ( 0 ) . args [ 0 ] ;
1378
1382
stderrStubCall = stderrStubCall . slice ( stderrStubCall . search ( 'c:' ) ) ;
1379
1383
expect ( stderrStubCall ) . to . equal (
1380
- `c: 'client', s: 'error', message: 'User input for mongodbLogPath is now invalid. Now logging to stderr .', error: 'This writable always throws' }`
1384
+ `c: 'client', s: 'error', message: 'User input for mongodbLogPath is now invalid. Logging is halted .', error: 'This writable always throws' }`
1381
1385
) ;
1382
- logger . debug ( 'random message 2' ) ;
1386
+
1387
+ // logging is halted
1388
+ logger . debug ( 'client' , 'random message 2' ) ;
1383
1389
const stderrStubCall2 = stderrStub . write . getCall ( 1 ) ;
1384
- expect ( stderrStubCall2 ) . to . not . be . null ;
1390
+ expect ( stderrStubCall2 ) . to . be . null ;
1391
+ expect ( Object . keys ( logger . componentSeverities ) . every ( key => key === SeverityLevel . OFF ) ) ;
1385
1392
} ) ;
1386
1393
} ) ;
1387
1394
} ) ;
@@ -1413,7 +1420,7 @@ describe('class MongoLogger', async function () {
1413
1420
logDestinationIsStdErr : false
1414
1421
} ) ;
1415
1422
// print random message at the debug level
1416
- logger . debug ( 'random message' ) ;
1423
+ logger . debug ( 'client' , ' random message') ;
1417
1424
1418
1425
// before timeout resolves, no error
1419
1426
expect ( stderrStub . write . getCall ( 0 ) ) . to . be . null ;
@@ -1425,12 +1432,14 @@ describe('class MongoLogger', async function () {
1425
1432
let stderrStubCall = stderrStub . write . getCall ( 0 ) . args [ 0 ] ;
1426
1433
stderrStubCall = stderrStubCall . slice ( stderrStubCall . search ( 'c:' ) ) ;
1427
1434
expect ( stderrStubCall ) . to . equal (
1428
- `c: 'client', s: 'error', message: 'User input for mongodbLogPath is now invalid. Now logging to stderr .', error: 'This writable always throws, but only after at least 500ms' }`
1435
+ `c: 'client', s: 'error', message: 'User input for mongodbLogPath is now invalid. Logging is halted .', error: 'This writable always throws, but only after at least 500ms' }`
1429
1436
) ;
1430
1437
1431
- logger . debug ( 'random message 2' ) ;
1438
+ // no more logging in the future
1439
+ logger . debug ( 'client' , 'random message 2' ) ;
1432
1440
const stderrStubCall2 = stderrStub . write . getCall ( 1 ) ;
1433
- expect ( stderrStubCall2 ) . to . not . be . null ;
1441
+ expect ( stderrStubCall2 ) . to . be . null ;
1442
+ expect ( Object . keys ( logger . componentSeverities ) . every ( key => key === SeverityLevel . OFF ) ) ;
1434
1443
} ) ;
1435
1444
} ) ;
1436
1445
@@ -1444,17 +1453,22 @@ describe('class MongoLogger', async function () {
1444
1453
logDestination : createStdioLogger ( process . stdout ) ,
1445
1454
logDestinationIsStdErr : false
1446
1455
} ) ;
1447
- logger . debug ( 'random message' ) ;
1456
+ logger . debug ( 'client' , 'random message' ) ;
1457
+
1448
1458
// manually wait for promise to resolve (takes extra time with promisify)
1449
1459
await sleep ( 600 ) ;
1460
+
1450
1461
let stderrStubCall = stderrStub . write . getCall ( 0 ) . args [ 0 ] ;
1451
1462
stderrStubCall = stderrStubCall . slice ( stderrStubCall . search ( 'c:' ) ) ;
1452
1463
expect ( stderrStubCall ) . to . equal (
1453
- `c: 'client', s: 'error', message: 'User input for mongodbLogPath is now invalid. Now logging to stderr .', error: 'I am stdout and do not work' }`
1464
+ `c: 'client', s: 'error', message: 'User input for mongodbLogPath is now invalid. Logging is halted .', error: 'I am stdout and do not work' }`
1454
1465
) ;
1455
- logger . debug ( 'random message 2' ) ;
1466
+
1467
+ // logging is halted
1468
+ logger . debug ( 'client' , 'random message 2' ) ;
1456
1469
const stderrStubCall2 = stderrStub . write . getCall ( 1 ) ;
1457
- expect ( stderrStubCall2 ) . to . not . be . null ;
1470
+ expect ( stderrStubCall2 ) . to . be . null ;
1471
+ expect ( Object . keys ( logger . componentSeverities ) . every ( key => key === SeverityLevel . OFF ) ) ;
1458
1472
} ) ;
1459
1473
} ) ;
1460
1474
} ) ;
@@ -1476,7 +1490,7 @@ describe('class MongoLogger', async function () {
1476
1490
logDestination : createStdioLogger ( process . stderr ) ,
1477
1491
logDestinationIsStdErr : true
1478
1492
} ) ;
1479
- expect ( ( ) => logger . debug ( 'random message' ) ) . to . not . throw ( Error ) ;
1493
+ expect ( ( ) => logger . debug ( 'client' , ' random message') ) . to . not . throw ( Error ) ;
1480
1494
expect ( Object . keys ( logger . componentSeverities ) . every ( key => key === SeverityLevel . OFF ) ) ;
1481
1495
} ) ;
1482
1496
} ) ;
@@ -1487,12 +1501,12 @@ describe('class MongoLogger', async function () {
1487
1501
const stream = {
1488
1502
buffer : [ ] ,
1489
1503
async write ( log ) {
1490
- if ( log . c === 'longer timeout' ) {
1504
+ if ( log . message === 'longer timeout' ) {
1491
1505
await sleep ( 2000 ) ;
1492
- } else if ( log . c === 'shorter timeout' ) {
1506
+ } else if ( log . message === 'shorter timeout' ) {
1493
1507
await sleep ( 500 ) ;
1494
1508
}
1495
- this . buffer . push ( log . c ) ;
1509
+ this . buffer . push ( log . message ) ;
1496
1510
}
1497
1511
} ;
1498
1512
const logger = new MongoLogger ( {
@@ -1502,9 +1516,9 @@ describe('class MongoLogger', async function () {
1502
1516
logDestinationIsStdErr : false
1503
1517
} ) ;
1504
1518
1505
- logger . debug ( 'longer timeout' ) ;
1506
- logger . debug ( 'shorter timeout' ) ;
1507
- logger . debug ( 'no timeout' ) ;
1519
+ logger . debug ( 'client' , ' longer timeout') ;
1520
+ logger . debug ( 'client' , ' shorter timeout') ;
1521
+ logger . debug ( 'client' , ' no timeout') ;
1508
1522
1509
1523
expect ( stream . buffer . length ) . to . equal ( 0 ) ;
1510
1524
0 commit comments