Пример #1
0
    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);
    }
Пример #2
0
    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));
    }