From 1d4b7af5b37a2b528aad0e8cc87033b8b8880352 Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Wed, 3 Dec 2025 16:54:19 +0900 Subject: [PATCH] Fix the logger for telemetry Fix the logger for telemetry --- WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs | 3 ++- .../WelsonJS.Launcher/Properties/AssemblyInfo.cs | 4 ++-- .../Telemetry/PosthogTelemetryProvider.cs | 14 ++++++++++---- .../WelsonJS.Launcher/Telemetry/TelemetryClient.cs | 4 +--- .../Telemetry/TelemetryProviderFactory.cs | 4 ++-- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs index 14f5e22..3455c5f 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs @@ -104,7 +104,8 @@ namespace WelsonJS.Launcher // send event to the telemetry server if (_telemetryClient != null) { - _ = _telemetryClient.TrackAppStartedAsync("WelsonJS.Launcher", "0.2.7.57"); + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + _ = _telemetryClient.TrackAppStartedAsync("WelsonJS.Launcher", version); } // draw the main form diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Properties/AssemblyInfo.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Properties/AssemblyInfo.cs index 8b48616..520bc4d 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Properties/AssemblyInfo.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 // 기본값으로 할 수 있습니다. // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.7.55")] -[assembly: AssemblyFileVersion("0.2.7.55")] +[assembly: AssemblyVersion("0.2.7.58")] +[assembly: AssemblyFileVersion("0.2.7.58")] diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs index 63c6313..5240b55 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs @@ -16,9 +16,10 @@ namespace WelsonJS.Launcher.Telemetry { private readonly TelemetryOptions _options; private readonly HttpClient _httpClient; + private readonly ICompatibleLogger _logger; private bool _disposed; - public PosthogTelemetryProvider(TelemetryOptions options) + public PosthogTelemetryProvider(TelemetryOptions options, ICompatibleLogger logger = null) { _options = options ?? throw new ArgumentNullException(nameof(options)); @@ -35,6 +36,7 @@ namespace WelsonJS.Launcher.Telemetry _options.DistinctId = $"anon-{Guid.NewGuid():N}"; _httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(5) }; + _logger = logger; } public async Task TrackEventAsync( @@ -70,11 +72,15 @@ namespace WelsonJS.Launcher.Telemetry url, new StringContent(json, Encoding.UTF8, "application/json"), cancellationToken - )) { /* disposed automatically */ } + )) + { + response.EnsureSuccessStatusCode(); + } } - catch + catch (Exception ex) { - // swallow for fire-and-forget telemetry + // Log and swallow for fire-and-forget telemetry + _logger?.Error($"Failed to send telemetry event '{eventName}': {ex.Message}"); } } diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryClient.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryClient.cs index 9c6dfdc..9fb1de7 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryClient.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryClient.cs @@ -13,12 +13,10 @@ namespace WelsonJS.Launcher.Telemetry public sealed class TelemetryClient : IDisposable { private readonly ITelemetryProvider _provider; - private readonly ICompatibleLogger _logger; public TelemetryClient(string providerName, TelemetryOptions options, ICompatibleLogger logger = null) { - _provider = TelemetryProviderFactory.Create(providerName, options); - _logger = logger; + _provider = TelemetryProviderFactory.Create(providerName, options, logger); } public Task TrackEventAsync( diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryProviderFactory.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryProviderFactory.cs index b7a4978..3454e15 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryProviderFactory.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/TelemetryProviderFactory.cs @@ -9,7 +9,7 @@ namespace WelsonJS.Launcher.Telemetry { public static class TelemetryProviderFactory { - public static ITelemetryProvider Create(string provider, TelemetryOptions options) + public static ITelemetryProvider Create(string provider, TelemetryOptions options, ICompatibleLogger logger = null) { if (options == null) throw new ArgumentNullException(nameof(options)); @@ -22,7 +22,7 @@ namespace WelsonJS.Launcher.Telemetry switch (provider) { case "posthog": - return new PosthogTelemetryProvider(options); + return new PosthogTelemetryProvider(options, logger); default: throw new NotSupportedException(