Created
February 16, 2022 18:55
-
-
Save ronascentes/331bbaedad5598e603cf30a93bf729d6 to your computer and use it in GitHub Desktop.
How to enable C# connection pool debugging logic for MongoDB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var clientSettings = new MongoClientSettings(); | |
var traceSource = new TraceSource("MongoDB-CMAP-SDAM", SourceLevels.All); | |
traceSource.Listeners.Clear(); // remove the default listener | |
var logFileName = "<should be updated on the real path to a log file>"; | |
var listener = new TextWriterTraceListener(new FileStream(logFileName, FileMode.Append)); | |
listener.TraceOutputOptions = TraceOptions.DateTime; | |
traceSource.Listeners.Add(listener); | |
var eventSubscriber = new TraceSourceEventSubscriber(traceSource); | |
Action<ClusterBuilder> clusterConfigurator = builder => builder.Subscribe(eventSubscriber); // if you don't use a MongoClient as singletone, it's better to share the same instance(so object.ReferenceEquals for them should return true) of this configurator, between all mongo clients | |
clientSettings.ClusterConfigurator = clusterConfigurator; | |
var client = new MongoClient(clientSettings); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment