Skip to content

Instantly share code, notes, and snippets.

@ronascentes
Created February 16, 2022 18:55
Show Gist options
  • Save ronascentes/331bbaedad5598e603cf30a93bf729d6 to your computer and use it in GitHub Desktop.
Save ronascentes/331bbaedad5598e603cf30a93bf729d6 to your computer and use it in GitHub Desktop.
How to enable C# connection pool debugging logic for MongoDB
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