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. |
||
|---|---|---|
| .. | ||
| AcBrowserConsoleLogWriter.cs | ||
| AcHttpClientLogItemWriter.cs | ||
| AcSignaRClientLogItemWriter.cs | ||
| README.md | ||
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 seeAyCode.Core/Loggers/README.md.
Key Files
AcHttpClientLogItemWriter.cs— Abstract structured writer extendingAcLogItemWriterBase<TLogItem>. Sends log items viaHttpClient.PostAsJsonAsync()(fire-and-forget). Manages its ownHttpClient+HttpClientHandler. HTTP/2 default.AcBrowserConsoleLogWriter.cs— Blazor browser console writer extendingAcTextLogWriterBase(text branch). UsesIJSRuntime.InvokeVoidAsync()to callconsole.info/console.warn/console.errorbased onLogLevel.AcSignaRClientLogItemWriter.cs— SignalR log transport writer extendingAcLogItemWriterBase<AcLogItemClient>. Sends structured log items toAcLoggerSignalRHubviaHubConnection.SendAsync("AddLogItem", logItem). Manages connection lifecycle (StartConnection/StopConnection). ConvertsTimeStampUtcto UTC before sending (SignalR doesn't transmitDateTime.Kind).