diff --git a/AyCode.Services/Loggers/AcHttpClientLogItemWriter.cs b/AyCode.Services/Loggers/AcHttpClientLogItemWriter.cs index 6c6ecce..04b5b7d 100644 --- a/AyCode.Services/Loggers/AcHttpClientLogItemWriter.cs +++ b/AyCode.Services/Loggers/AcHttpClientLogItemWriter.cs @@ -2,28 +2,33 @@ using AyCode.Core.Loggers; using AyCode.Entities; using System.Net; +using System.Net.Http.Json; +using AyCode.Core.Helpers; namespace AyCode.Services.Loggers; public abstract class AcHttpClientLogItemWriter : AcLogItemWriterBase, IAcLogWriterClientBase where TLogItem : class, IAcLogItemClient { + protected string _url; protected HttpClient _httpClient; protected HttpClientHandler _httpClientHandler; - protected AcHttpClientLogItemWriter(HttpClient httpClient) : base(AppType.Web, LogLevel.Detail) + protected AcHttpClientLogItemWriter(HttpClient httpClient, string url) : base(AppType.Web, LogLevel.Detail) { //_httpClient = httpClient; - + _url = url; Initialize(httpClient.BaseAddress, httpClient.DefaultRequestVersion, httpClient.DefaultVersionPolicy); } - protected AcHttpClientLogItemWriter(string? categoryName = null) : base(categoryName) + protected AcHttpClientLogItemWriter(string url, string? categoryName = null) : base(categoryName) { + _url = url; Initialize(null, HttpVersion.Version20, HttpVersionPolicy.RequestVersionOrHigher); } - protected AcHttpClientLogItemWriter(AppType appType, LogLevel logLevel, string? categoryName = null) : base(appType, logLevel, categoryName) + protected AcHttpClientLogItemWriter(string url, AppType appType, LogLevel logLevel, string? categoryName = null) : base(appType, logLevel, categoryName) { + _url = url; Initialize(null, HttpVersion.Version20, HttpVersionPolicy.RequestVersionOrHigher); } @@ -40,6 +45,12 @@ public abstract class AcHttpClientLogItemWriter : AcLogItemWriterBase< public override void Write(AppType appType, LogLevel logLevel, string? logText, string? callerMemberName, string? categoryName, string? errorType, string? exMessage) => WriteLogItem(CreateLogItem(DateTime.UtcNow, appType, Environment.CurrentManagedThreadId, logLevel, logText, callerMemberName, categoryName, errorType, exMessage)); + protected override void WriteLogItemCallback(TLogItem logItem) + { + //logItem.ThreadId = Environment.CurrentManagedThreadId; + _httpClient.PostAsJsonAsync(_url, logItem).Forget(); + } + //protected override void WriteLogItem(TLogItem logItem, Action? callback = null) //{ // //throw new NotImplementedException();