private async Task DatabaseLog(LogLevel level, Exception exception, string message) { try { if (_logDb) { await _context.SystemLog.AddAsync(new SystemLog() { LogLevel = level.ToString(), Message = string.IsNullOrWhiteSpace(message) ? exception.Message : message, InnerException = exception?.InnerException?.Message, }); await _context.SaveChangesAsync(CancellationToken.None); } } catch (Exception e) { _logger.LogCritical(e, $"Could not log message to database - {e.Message}"); } }
private void FileLog(LogLevel level, Exception exception, string message) { try { var className = exception.GetLastCalledClassName(); if (!string.IsNullOrWhiteSpace(className)) { var fileLogger = LogManager.GetLogger(className); switch (level) { case LogLevel.Trace: fileLogger.Trace(exception, message); return; case LogLevel.Debug: fileLogger.Debug(exception, message); return; case LogLevel.Info: fileLogger.Info(exception, message); return; case LogLevel.Warn: fileLogger.Warn(exception, message); return; case LogLevel.Error: fileLogger.Error(exception, message); return; } } else { switch (level) { case LogLevel.Trace: _logger.LogTrace(exception, message); return; case LogLevel.Debug: _logger.LogDebug(exception, message); return; case LogLevel.Info: _logger.LogInformation(exception, message); return; case LogLevel.Warn: _logger.LogWarning(exception, message); return; case LogLevel.Error: _logger.LogError(exception, message); return; } } } catch (Exception e) { Console.WriteLine(e); } }
public LoggingService(IApplicationDbContext context, ILogger <LoggingService> logger, LogLevelSettings settings) { _context = context; _logger = logger; _logLevel = (LogLevel)Enum.Parse(typeof(LogLevel), settings.Default, true); }