public IActionResult GetLogs( [FromRoute] string serviceName, [FromQuery] LogLevel[]?levels, [FromQuery] string?substring, [FromQuery] DateTime?from, [FromQuery] DateTime?to, [FromQuery] bool ignoreCase = true) { log.Info($"Received a request: \"{Request.Path}\" with query \"{Request.QueryString}\""); if (serviceName == null) { return(BadRequest("Service name must be specified")); } if (from == null || to == null) { return(BadRequest("\"from\" and \"to\" periods must be specified")); } if (from > to) { return(BadRequest("\"from\" must be less than \"to\"")); } var filterParameters = new LogFilterParameters { IsIgnoreCase = ignoreCase, Substring = substring, LogLevels = levels }; log.Info($"Searching for \"{serviceName}\" logs from {@from.Value:F} to {to.Value:F}"); var result = logService.GetLogs(serviceName, from.Value, to.Value, filterParameters); if (result.IsFail) { return(NotFound(result.Error)); } return(Content(string.Join(Environment.NewLine, result.Value))); }
public async Task <ActionResult <LogViewModel> > Get([FromQuery] LogFilterParameters lf) { var result = await _logAppService.GetByFilter(lf.ip, lf.userAgentProduct, lf.fromHour, lf.fromMinute, lf.toHour, lf.toMinute); return(Ok(result)); }