コード例 #1
0
        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();
            }
        }
コード例 #2
0
 public SendGridProvider(ErrorReportSettings settings)
 {
     _settings = settings;
     _apiKey   = _settings.SendGridAPIKey;
 }