// constructors /// <summary> /// Initializes a new instance of the <see cref="ClusterBuilder"/> class. /// </summary> public ClusterBuilder() { _clusterSettings = new ClusterSettings(); _sdamLoggingSettings = new SdamLoggingSettings(null); _serverSettings = new ServerSettings(); _connectionPoolSettings = new ConnectionPoolSettings(); _connectionSettings = new ConnectionSettings(); _tcpStreamSettings = new TcpStreamSettings(); _streamFactoryWrapper = inner => inner; _eventAggregator = new EventAggregator(); }
/// <summary> /// Configures the SDAM logging settings. /// </summary> /// <param name="configurator">The SDAM logging settings configurator delegate.</param> /// <returns>A reconfigured cluster builder.</returns> public ClusterBuilder ConfigureSdamLogging(Func <SdamLoggingSettings, SdamLoggingSettings> configurator) { _sdamLoggingSettings = configurator(_sdamLoggingSettings); if (!_sdamLoggingSettings.IsLoggingEnabled) { return(this); } var traceSource = new TraceSource(__traceSourceName, SourceLevels.All); traceSource.Listeners.Clear(); // remove the default listener var listener = _sdamLoggingSettings.ShouldLogToStdout ? new TextWriterTraceListener(Console.Out) : new TextWriterTraceListener(new FileStream(_sdamLoggingSettings.LogFilename, FileMode.Append)); listener.TraceOutputOptions = TraceOptions.DateTime; traceSource.Listeners.Add(listener); return(this.Subscribe(new TraceSourceSdamEventSubscriber(traceSource))); }