/// <summary> /// Initializes a new instance of the <see cref="PlugInCoreBase"/> class. /// </summary> /// <param name="rollbarConfig">The rollbar configuration.</param> /// <param name="rollbarBlockingTimeout">The rollbar blocking timeout.</param> protected PlugInCoreBase( IRollbarInfrastructureConfig?rollbarConfig, TimeSpan?rollbarBlockingTimeout ) { if (rollbarConfig == null) { var configLoader = new RollbarConfigurationLoader(); rollbarConfig = configLoader.LoadRollbarConfig(); } if (rollbarConfig == null) { throw new RollbarException(InternalRollbarError.ConfigurationError, $"{this.GetType().FullName}: Failed to load Rollbar configuration!"); } // first, initialize the infrastructure: if (!RollbarInfrastructure.Instance.IsInitialized) { RollbarInfrastructure.Instance.Init(rollbarConfig); } // create proper IRollbar instance: this.rollbar = RollbarFactory.CreateNew(rollbarConfig.RollbarLoggerConfig); // create proper RollbarLogger instance: if (rollbarBlockingTimeout.HasValue) { this.rollbarLogger = this.rollbar.AsBlockingLogger(rollbarBlockingTimeout.Value); } else { this.rollbarLogger = this.rollbar.Logger; } }
/// <summary> /// Initializes a new instance of the <see cref="PlugInCoreBase"/> class. /// </summary> /// <param name="rollbarConfig">The rollbar configuration.</param> /// <param name="rollbarBlockingTimeout">The rollbar blocking timeout.</param> protected PlugInCoreBase( IRollbarConfig rollbarConfig, TimeSpan?rollbarBlockingTimeout ) { if (rollbarConfig == null) { var configLoader = new RollbarConfigurationLoader(); rollbarConfig = configLoader.LoadRollbarConfig(); } this._rollbar = RollbarFactory.CreateNew().Configure(rollbarConfig); if (rollbarBlockingTimeout.HasValue) { this._rollbarLogger = this._rollbar.AsBlockingLogger(rollbarBlockingTimeout.Value); } else { this._rollbarLogger = this._rollbar.Logger; } }
/// <summary> /// Initializes a new <see cref="IRollbarInfrastructureConfig"/> from app.config (NetFramework) / appsettings.json (NetCore) /// </summary> private static IRollbarInfrastructureConfig?CreateDefaultRollbarConfig() { var configLoader = new RollbarConfigurationLoader(); return(configLoader.LoadRollbarConfig()); }