mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-29 05:18:02 +02:00
server: add elapsed time to logs (#14153)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
@@ -300,16 +301,22 @@ namespace Jackett.Common.Services
|
||||
|
||||
public async Task TestIndexer(string name)
|
||||
{
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
|
||||
var indexer = GetIndexer(name);
|
||||
|
||||
var query = new TorznabQuery
|
||||
{
|
||||
QueryType = "search",
|
||||
SearchTerm = "",
|
||||
IsTest = true
|
||||
};
|
||||
|
||||
var result = await indexer.ResultsForQuery(query);
|
||||
|
||||
_logger.Info($"Test search in {indexer.Name} => Found {result.Releases.Count()} releases");
|
||||
stopwatch.Stop();
|
||||
|
||||
_logger.Info($"Test search in {indexer.Name} => Found {result.Releases.Count()} releases [{stopwatch.ElapsedMilliseconds:0}ms]");
|
||||
|
||||
if (!result.Releases.Any())
|
||||
throw new Exception($"Test search in {indexer.Name} => Found no results while trying to browse this tracker");
|
||||
|
@@ -189,6 +189,8 @@ namespace Jackett.Server.Controllers
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> Results([FromQuery] ApiSearch requestt)
|
||||
{
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
|
||||
//TODO: Better way to parse querystring
|
||||
|
||||
var request = new ApiSearch();
|
||||
@@ -296,10 +298,13 @@ namespace Jackett.Server.Controllers
|
||||
// Log info
|
||||
var indexersName = string.Join(", ", manualResult.Indexers.Select(i => i.Name));
|
||||
var cacheStr = tasks.Where(t => t.Status == TaskStatus.RanToCompletion).Any(t => t.Result.IsFromCache) ? " (from cache)" : "";
|
||||
|
||||
stopwatch.Stop();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
|
||||
logger.Info($"Manual search in {indexersName} => Found {manualResult.Results.Count()} releases{cacheStr}");
|
||||
logger.Info($"Manual search in {indexersName} => Found {manualResult.Results.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
|
||||
else
|
||||
logger.Info($"Manual search in {indexersName} for {CurrentQuery.GetQueryString()} => Found {manualResult.Results.Count()} releases{cacheStr}");
|
||||
logger.Info($"Manual search in {indexersName} for {CurrentQuery.GetQueryString()} => Found {manualResult.Results.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
|
||||
|
||||
return Json(manualResult);
|
||||
}
|
||||
@@ -348,6 +353,8 @@ namespace Jackett.Server.Controllers
|
||||
return Content(xdoc.Declaration.ToString() + Environment.NewLine + xdoc.ToString(), "application/xml", Encoding.UTF8);
|
||||
}
|
||||
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
|
||||
if (CurrentQuery.ImdbID != null)
|
||||
{
|
||||
/* We should allow this (helpful in case of aggregate indexers)
|
||||
@@ -406,13 +413,6 @@ namespace Jackett.Server.Controllers
|
||||
{
|
||||
var result = await CurrentIndexer.ResultsForQuery(CurrentQuery);
|
||||
|
||||
// Log info
|
||||
var cacheStr = result.IsFromCache ? " (from cache)" : "";
|
||||
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
|
||||
logger.Info($"Torznab search in {CurrentIndexer.Name} => Found {result.Releases.Count()} releases{cacheStr}");
|
||||
else
|
||||
logger.Info($"Torznab search in {CurrentIndexer.Name} for {CurrentQuery.GetQueryString()} => Found {result.Releases.Count()} releases{cacheStr}");
|
||||
|
||||
var serverUrl = serverService.GetServerUrl(Request);
|
||||
var resultPage = new ResultPage(new ChannelInfo
|
||||
{
|
||||
@@ -430,9 +430,18 @@ namespace Jackett.Server.Controllers
|
||||
|
||||
resultPage.Releases = proxiedReleases.ToList();
|
||||
|
||||
var xml = resultPage.ToXml(new Uri(serverUrl));
|
||||
// Force the return as XML
|
||||
stopwatch.Stop();
|
||||
|
||||
// Log info
|
||||
var cacheStr = result.IsFromCache ? " (from cache)" : "";
|
||||
if (string.IsNullOrWhiteSpace(CurrentQuery.SanitizedSearchTerm))
|
||||
logger.Info($"Torznab search in {CurrentIndexer.Name} => Found {result.Releases.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
|
||||
else
|
||||
logger.Info($"Torznab search in {CurrentIndexer.Name} for {CurrentQuery.GetQueryString()} => Found {result.Releases.Count()} releases{cacheStr} [{stopwatch.ElapsedMilliseconds:0}ms]");
|
||||
|
||||
var xml = resultPage.ToXml(new Uri(serverUrl));
|
||||
|
||||
// Force the return as XML
|
||||
return Content(xml, "application/rss+xml", Encoding.UTF8);
|
||||
}
|
||||
catch (IndexerException ex) when (ex.InnerException is TooManyRequestsException tooManyRequestsException)
|
||||
|
Reference in New Issue
Block a user