@@ -31,7 +31,7 @@ import {
31
31
MongoTopologyClosedError
32
32
} from '../error' ;
33
33
import type { MongoClient , ServerApi } from '../mongo_client' ;
34
- import { MongoLoggableComponent , type MongoLogger } from '../mongo_logger' ;
34
+ import { MongoLoggableComponent , type MongoLogger , SeverityLevel } from '../mongo_logger' ;
35
35
import { TypedEventEmitter } from '../mongo_types' ;
36
36
import { ReadPreference , type ReadPreferenceLike } from '../read_preference' ;
37
37
import type { ClientSession } from '../sessions' ;
@@ -568,25 +568,36 @@ export class Topology extends TypedEventEmitter<TopologyEvents> {
568
568
}
569
569
570
570
options = { serverSelectionTimeoutMS : this . s . serverSelectionTimeoutMS , ...options } ;
571
- this . client . mongoLogger ?. debug (
572
- MongoLoggableComponent . SERVER_SELECTION ,
573
- new ServerSelectionStartedEvent ( selector , this . description , options . operationName )
574
- ) ;
571
+ if (
572
+ this . client . mongoLogger ?. willLog ( MongoLoggableComponent . SERVER_SELECTION , SeverityLevel . DEBUG )
573
+ ) {
574
+ this . client . mongoLogger ?. debug (
575
+ MongoLoggableComponent . SERVER_SELECTION ,
576
+ new ServerSelectionStartedEvent ( selector , this . description , options . operationName )
577
+ ) ;
578
+ }
575
579
576
580
const isSharded = this . description . type === TopologyType . Sharded ;
577
581
const session = options . session ;
578
582
const transaction = session && session . transaction ;
579
583
580
584
if ( isSharded && transaction && transaction . server ) {
581
- this . client . mongoLogger ?. debug (
582
- MongoLoggableComponent . SERVER_SELECTION ,
583
- new ServerSelectionSucceededEvent (
584
- selector ,
585
- this . description ,
586
- transaction . server . pool . address ,
587
- options . operationName
585
+ if (
586
+ this . client . mongoLogger ?. willLog (
587
+ MongoLoggableComponent . SERVER_SELECTION ,
588
+ SeverityLevel . DEBUG
588
589
)
589
- ) ;
590
+ ) {
591
+ this . client . mongoLogger ?. debug (
592
+ MongoLoggableComponent . SERVER_SELECTION ,
593
+ new ServerSelectionSucceededEvent (
594
+ selector ,
595
+ this . description ,
596
+ transaction . server . pool . address ,
597
+ options . operationName
598
+ )
599
+ ) ;
600
+ }
590
601
callback ( undefined , transaction . server ) ;
591
602
return ;
592
603
}
@@ -611,15 +622,22 @@ export class Topology extends TypedEventEmitter<TopologyEvents> {
611
622
`Server selection timed out after ${ options . serverSelectionTimeoutMS } ms` ,
612
623
this . description
613
624
) ;
614
- this . client . mongoLogger ?. debug (
615
- MongoLoggableComponent . SERVER_SELECTION ,
616
- new ServerSelectionFailedEvent (
617
- selector ,
618
- this . description ,
619
- timeoutError ,
620
- options . operationName
625
+ if (
626
+ this . client . mongoLogger ?. willLog (
627
+ MongoLoggableComponent . SERVER_SELECTION ,
628
+ SeverityLevel . DEBUG
621
629
)
622
- ) ;
630
+ ) {
631
+ this . client . mongoLogger ?. debug (
632
+ MongoLoggableComponent . SERVER_SELECTION ,
633
+ new ServerSelectionFailedEvent (
634
+ selector ,
635
+ this . description ,
636
+ timeoutError ,
637
+ options . operationName
638
+ )
639
+ ) ;
640
+ }
623
641
waitQueueMember . callback ( timeoutError ) ;
624
642
} ) ;
625
643
@@ -896,15 +914,22 @@ function drainWaitQueue(queue: List<ServerSelectionRequest>, err?: MongoDriverEr
896
914
897
915
if ( ! waitQueueMember [ kCancelled ] ) {
898
916
if ( err ) {
899
- waitQueueMember . mongoLogger ?. debug (
900
- MongoLoggableComponent . SERVER_SELECTION ,
901
- new ServerSelectionFailedEvent (
902
- waitQueueMember . serverSelector ,
903
- waitQueueMember . topologyDescription ,
904
- err ,
905
- waitQueueMember . operationName
917
+ if (
918
+ waitQueueMember . mongoLogger ?. willLog (
919
+ MongoLoggableComponent . SERVER_SELECTION ,
920
+ SeverityLevel . DEBUG
906
921
)
907
- ) ;
922
+ ) {
923
+ waitQueueMember . mongoLogger ?. debug (
924
+ MongoLoggableComponent . SERVER_SELECTION ,
925
+ new ServerSelectionFailedEvent (
926
+ waitQueueMember . serverSelector ,
927
+ waitQueueMember . topologyDescription ,
928
+ err ,
929
+ waitQueueMember . operationName
930
+ )
931
+ ) ;
932
+ }
908
933
}
909
934
waitQueueMember . callback ( err ) ;
910
935
}
@@ -943,33 +968,47 @@ function processWaitQueue(topology: Topology) {
943
968
: serverDescriptions ;
944
969
} catch ( e ) {
945
970
waitQueueMember . timeoutController . clear ( ) ;
946
- topology . client . mongoLogger ?. debug (
947
- MongoLoggableComponent . SERVER_SELECTION ,
948
- new ServerSelectionFailedEvent (
949
- waitQueueMember . serverSelector ,
950
- topology . description ,
951
- e ,
952
- waitQueueMember . operationName
971
+ if (
972
+ topology . client . mongoLogger ?. willLog (
973
+ MongoLoggableComponent . SERVER_SELECTION ,
974
+ SeverityLevel . DEBUG
953
975
)
954
- ) ;
976
+ ) {
977
+ topology . client . mongoLogger ?. debug (
978
+ MongoLoggableComponent . SERVER_SELECTION ,
979
+ new ServerSelectionFailedEvent (
980
+ waitQueueMember . serverSelector ,
981
+ topology . description ,
982
+ e ,
983
+ waitQueueMember . operationName
984
+ )
985
+ ) ;
986
+ }
955
987
waitQueueMember . callback ( e ) ;
956
988
continue ;
957
989
}
958
990
959
991
let selectedServer : Server | undefined ;
960
992
if ( selectedDescriptions . length === 0 ) {
961
993
if ( ! waitQueueMember . waitingLogged ) {
962
- topology . client . mongoLogger ?. info (
963
- MongoLoggableComponent . SERVER_SELECTION ,
964
- new WaitingForSuitableServerEvent (
965
- waitQueueMember . serverSelector ,
966
- topology . description ,
967
- topology . s . serverSelectionTimeoutMS !== 0
968
- ? topology . s . serverSelectionTimeoutMS - ( now ( ) - waitQueueMember . startTime )
969
- : - 1 ,
970
- waitQueueMember . operationName
994
+ if (
995
+ topology . client . mongoLogger ?. willLog (
996
+ MongoLoggableComponent . SERVER_SELECTION ,
997
+ SeverityLevel . INFORMATIONAL
971
998
)
972
- ) ;
999
+ ) {
1000
+ topology . client . mongoLogger ?. info (
1001
+ MongoLoggableComponent . SERVER_SELECTION ,
1002
+ new WaitingForSuitableServerEvent (
1003
+ waitQueueMember . serverSelector ,
1004
+ topology . description ,
1005
+ topology . s . serverSelectionTimeoutMS !== 0
1006
+ ? topology . s . serverSelectionTimeoutMS - ( now ( ) - waitQueueMember . startTime )
1007
+ : - 1 ,
1008
+ waitQueueMember . operationName
1009
+ )
1010
+ ) ;
1011
+ }
973
1012
waitQueueMember . waitingLogged = true ;
974
1013
}
975
1014
topology [ kWaitQueue ] . push ( waitQueueMember ) ;
@@ -992,15 +1031,22 @@ function processWaitQueue(topology: Topology) {
992
1031
'server selection returned a server description but the server was not found in the topology' ,
993
1032
topology . description
994
1033
) ;
995
- topology . client . mongoLogger ?. debug (
996
- MongoLoggableComponent . SERVER_SELECTION ,
997
- new ServerSelectionFailedEvent (
998
- waitQueueMember . serverSelector ,
999
- topology . description ,
1000
- error ,
1001
- waitQueueMember . operationName
1034
+ if (
1035
+ topology . client . mongoLogger ?. willLog (
1036
+ MongoLoggableComponent . SERVER_SELECTION ,
1037
+ SeverityLevel . DEBUG
1002
1038
)
1003
- ) ;
1039
+ ) {
1040
+ topology . client . mongoLogger ?. debug (
1041
+ MongoLoggableComponent . SERVER_SELECTION ,
1042
+ new ServerSelectionFailedEvent (
1043
+ waitQueueMember . serverSelector ,
1044
+ topology . description ,
1045
+ error ,
1046
+ waitQueueMember . operationName
1047
+ )
1048
+ ) ;
1049
+ }
1004
1050
waitQueueMember . callback ( error ) ;
1005
1051
return ;
1006
1052
}
@@ -1011,15 +1057,22 @@ function processWaitQueue(topology: Topology) {
1011
1057
1012
1058
waitQueueMember . timeoutController . clear ( ) ;
1013
1059
1014
- topology . client . mongoLogger ?. debug (
1015
- MongoLoggableComponent . SERVER_SELECTION ,
1016
- new ServerSelectionSucceededEvent (
1017
- waitQueueMember . serverSelector ,
1018
- waitQueueMember . topologyDescription ,
1019
- selectedServer . pool . address ,
1020
- waitQueueMember . operationName
1060
+ if (
1061
+ topology . client . mongoLogger ?. willLog (
1062
+ MongoLoggableComponent . SERVER_SELECTION ,
1063
+ SeverityLevel . DEBUG
1021
1064
)
1022
- ) ;
1065
+ ) {
1066
+ topology . client . mongoLogger ?. debug (
1067
+ MongoLoggableComponent . SERVER_SELECTION ,
1068
+ new ServerSelectionSucceededEvent (
1069
+ waitQueueMember . serverSelector ,
1070
+ waitQueueMember . topologyDescription ,
1071
+ selectedServer . pool . address ,
1072
+ waitQueueMember . operationName
1073
+ )
1074
+ ) ;
1075
+ }
1023
1076
waitQueueMember . callback ( undefined , selectedServer ) ;
1024
1077
}
1025
1078
0 commit comments