AyCode.Core/AyCode.Services/Loggers
Loretta a6bd024d17 Generic SignalR logger hub and writer, doc updates
Introduced generic `AcLoggerSignalRHub<TLogger, TLogItem>` and `AcSignaRClientLogItemWriter<TLogItem>` for flexible log item wire types (AcBinary/JSON). Updated writer to accept protocol options and enforce feedback-loop prevention. Improved documentation to clarify generic usage, protocol selection, and migration. Added TODOs for protocol-diagnostic logger and log noise reduction. Refactored exception handling and signatures for generics; updated issue/TODO tracking and enhanced code comments.
2026-07-13 08:38:17 +02:00
..
AcBrowserConsoleLogWriter.cs AcSignalRClient; AcBrowserLogWriter... 2025-09-01 16:19:01 +02:00
AcHttpClientLogItemWriter.cs fixes 2024-05-18 13:18:28 +02:00
AcSignaRClientLogItemWriter.cs Generic SignalR logger hub and writer, doc updates 2026-07-13 08:38:17 +02:00
README.md [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00

README.md

Loggers

Remote log writers for sending log items over HTTP, SignalR, or to the browser console. All three implement IAcLogWriterClientBase.

For full logging architecture see docs/LOGGING/README.md. For core logger and writer abstractions see AyCode.Core/Loggers/README.md.

Key Files

  • AcHttpClientLogItemWriter.cs — Abstract structured writer extending AcLogItemWriterBase<TLogItem>. Sends log items via HttpClient.PostAsJsonAsync() (fire-and-forget). Manages its own HttpClient + HttpClientHandler. HTTP/2 default.
  • AcBrowserConsoleLogWriter.cs — Blazor browser console writer extending AcTextLogWriterBase (text branch). Uses IJSRuntime.InvokeVoidAsync() to call console.info / console.warn / console.error based on LogLevel.
  • AcSignaRClientLogItemWriter.cs — SignalR log transport writer extending AcLogItemWriterBase<AcLogItemClient>. Sends structured log items to AcLoggerSignalRHub via HubConnection.SendAsync("AddLogItem", logItem). Manages connection lifecycle (StartConnection/StopConnection). Converts TimeStampUtc to UTC before sending (SignalR doesn't transmit DateTime.Kind).