Added logging.

This commit is contained in:
2025-10-20 23:32:38 -04:00
parent e0e8945728
commit 3a115bc7b8
18 changed files with 381 additions and 64 deletions

View File

@@ -0,0 +1,59 @@
using Microsoft.Extensions.Logging;
namespace JSMR.Application.Logging;
public static partial class LogEvents
{
public static void SearchCompleted(ILogger logger, long Elapsed, int Items, int Total, int Page, int Size, object Sort, object Criteria)
{
logger.LogInformation(
new EventId(1000, "SearchCompleted"),
"Search returned {Items} items (out of {Total} total) results in {Elapsed} ms on page {Page} with Size {Size}, sorted by {@Sort}, based on the following criteria: {@Criteria}",
Items,
Total,
Elapsed,
Page,
Size,
Sort,
Criteria
);
}
// Search
[LoggerMessage(EventId = 1000, Level = LogLevel.Information,
Message = "Search started Page={Page} Size={Size} Criteria={@Criteria}")]
public static partial void SearchStart(ILogger logger, int Page, int Size, object Criteria);
//[LoggerMessage(EventId = 1001, Level = LogLevel.Information,
// Message = "Search completed in {ElapsedMs} ms, Total={Total}")]
//public static partial void SearchComplete(ILogger logger, long ElapsedMs, int Total);
[LoggerMessage(EventId = 1001, Level = LogLevel.Information,
Message = "Search returned {Items} items (out of {Total} total) results in {Elapsed} ms on page {Page} with Size {Size}, sorted by {@Sort}, based on the following criteria: {@Criteria}")]
public static partial void SearchComplete(ILogger logger, long Elapsed, int Items, int Total, int Page, int Size, object Sort, object Criteria);
[LoggerMessage(EventId = 1002, Level = LogLevel.Warning,
Message = "External search provider timeout after {ElapsedMs} ms")]
public static partial void ExternalSearchTimeout(ILogger logger, long ElapsedMs);
[LoggerMessage(EventId = 1003, Level = LogLevel.Warning,
Message = "Slow Search Detected: Elapsed {ElapsedMs} ms (threshold {ThresholdMs} ms) Path={Path}")]
public static partial void SlowSearchDetected(ILogger logger, long ElapsedMs, long ThresholdMs, string Path);
[LoggerMessage(EventId = 1004, Level = LogLevel.Error,
Message = "Very Slow Search Detected: Elapsed {ElapsedMs} ms (threshold {ThresholdMs} ms) Path={Path}")]
public static partial void VerySlowSearchDetected(ILogger logger, long ElapsedMs, long ThresholdMs, string Path);
// Worker scan batch
[LoggerMessage(EventId = 2000, Level = LogLevel.Information,
Message = "Scan batch {BatchId} started")]
public static partial void ScanBatchStart(ILogger logger, string BatchId);
[LoggerMessage(EventId = 2001, Level = LogLevel.Information,
Message = "Scan batch {BatchId} completed in {ElapsedMs} ms. Processed={Processed} Failures={Failures}")]
public static partial void ScanBatchComplete(ILogger logger, string BatchId, int Processed, int Failures, long ElapsedMs);
[LoggerMessage(EventId = 2002, Level = LogLevel.Error,
Message = "Scan batch {BatchId} failed")]
public static partial void ScanBatchFailed(ILogger logger, string BatchId, Exception ex);
}