/// <summary> /// Logs a message <paramref name="data"/> using the log <paramref name="level"/>. /// </summary> /// <param name="level">The level of the logged message.</param> /// <param name="data">The message to log.</param> /// <exception cref="ArgumentOutOfRangeException"><paramref name="level"/> is not a valid log level.</exception> public Task LogAsync(LogLevel level, string data) { switch (level) { case LogLevel.Debug: return(logger.LogAsync(MessageLevel.Debug, data)); case LogLevel.Verbose: return(logger.LogAsync(MessageLevel.Verbose, data)); case LogLevel.Information: return(logger.LogAsync(MessageLevel.Info, data)); case LogLevel.Minimal: return(logger.LogAsync(MessageLevel.Minimal, data)); case LogLevel.Warning: return(logger.LogAsync(MessageLevel.Warning, data)); case LogLevel.Error: return(logger.LogAsync(MessageLevel.Error, data)); default: throw new ArgumentOutOfRangeException(nameof(level), level, null); } }