public ErrorReporter(ErrorReportSettings settings, TelemetryClient telemetry = null) { _settings = settings; if (telemetry != null) { _telemetry = telemetry; } if (!string.IsNullOrEmpty(_settings.SendGridAPIKey)) { _sendGrid = new SendGridProvider(_settings); } /* * Level | Usage * ------------|--------------- * Verbose | Verbose is the noisiest level, rarely (if ever) enabled for a production app. * Debug | Debug is used for internal system events that are not necessarily observable from the outside, but useful when determining how something happened. * Information | Information events describe things happening in the system that correspond to its responsibilities and functions. Generally these are the observable actions the system can perform. * Warning | When service is degraded, endangered, or may be behaving outside of its expected parameters, Warning level events are used. * Error | When functionality is unavailable or expectations broken, an Error event is used. * Fatal | The most critical level, Fatal events demand immediate attention. */ if (_settings.LogToLocalFile && !_settings.LogToMsSql) { _logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File($"{_settings.LocalLogFilePath}\\{DateTime.Now.Date} - Error-Logs.txt", Serilog.Events.LogEventLevel.Debug) .CreateLogger(); } else if (_settings.LogToMsSql && !_settings.LogToLocalFile) { _logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.MSSqlServer(_settings.DbConnectionString, "Logs", Serilog.Events.LogEventLevel.Debug) .CreateLogger(); } else if (_settings.LogToMsSql && _settings.LogToLocalFile) { _logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.File($"{_settings.LocalLogFilePath}\\{DateTime.Now.Date} - Error-Logs.txt", Serilog.Events.LogEventLevel.Debug) .WriteTo.MSSqlServer(_settings.DbConnectionString, "Logs", Serilog.Events.LogEventLevel.Debug) .CreateLogger(); } else { _logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.File($"{System.IO.Directory.GetCurrentDirectory()}\\{DateTime.Now.Date.ToShortDateString()} - Error-Logs.txt") .CreateLogger(); } }
public SendGridProvider(ErrorReportSettings settings) { _settings = settings; _apiKey = _settings.SendGridAPIKey; }