public async Task <LogGrpcResponse> GetLogsAsync(LogGrpcRequest request, CallContext context = default) { var response = new LogGrpcResponse(); try { var logs = new List <LaobianLog>(); var days = request.Days; var minLevel = request.MinLevel; if (Enum.TryParse(request.Logger, true, out LaobianSite laobianSite)) { if (laobianSite == LaobianSite.All) { logs.AddRange(await ReadLogsAsync(LaobianSite.Admin, days, minLevel)); logs.AddRange(await ReadLogsAsync(LaobianSite.Blog, days, minLevel)); logs.AddRange(await ReadLogsAsync(LaobianSite.Api, days, minLevel)); logs.AddRange(await ReadLogsAsync(LaobianSite.Jarvis, days, minLevel)); } else { logs.AddRange(await ReadLogsAsync(laobianSite, days, minLevel)); } } response.Logs = logs; } catch (Exception ex) { _logger.LogError(ex, $"{nameof(LogGrpcService)}({nameof(GetLogsAsync)}) failed."); response.IsOk = false; response.Message = ex.Message; } return(response); }
public async Task <LogGrpcResponse> AddLogsAsync(LogGrpcRequest request, CallContext context = default) { var response = new LogGrpcResponse(); try { foreach (var log in request.Logs) { log.LoggerName = request.Logger; _laobianLogQueue.Add(log); } } catch (Exception ex) { _logger.LogError(ex, $"{nameof(LogGrpcService)}({nameof(AddLogsAsync)}) failed."); response.IsOk = false; response.Message = ex.Message; } return(await Task.FromResult(response)); }