diff --git a/TaxBaik.Web/Controllers/ClientLogsController.cs b/TaxBaik.Web/Controllers/ClientLogsController.cs index 8b5a159..a13e85c 100644 --- a/TaxBaik.Web/Controllers/ClientLogsController.cs +++ b/TaxBaik.Web/Controllers/ClientLogsController.cs @@ -18,8 +18,9 @@ public class ClientLogsController(ILogger logger) : Contro return BadRequest(); } - logger.LogWarning( - "ClientLog {Level} {Source} {Message} Url={Url} Route={Route} Screen={Screen} Feature={Feature} Action={Action} Step={Step} Entity={Entity} EntityId={EntityId} DataKey={DataKey} BuildVersion={BuildVersion} UserAgent={UserAgent} Stack={Stack}", + var logMessage = "ClientLog {Level} {Source} {Message} Url={Url} Route={Route} Screen={Screen} Feature={Feature} Action={Action} Step={Step} Entity={Entity} EntityId={EntityId} DataKey={DataKey} BuildVersion={BuildVersion} UserAgent={UserAgent} Stack={Stack}"; + var args = new object?[] + { entry.Level ?? "error", entry.Source ?? "unknown", entry.Message, @@ -34,7 +35,19 @@ public class ClientLogsController(ILogger logger) : Contro entry.DataKey ?? string.Empty, entry.BuildVersion ?? string.Empty, entry.UserAgent ?? string.Empty, - entry.Stack ?? string.Empty); + entry.Stack ?? string.Empty + }; + + // Client errors (level: error) → Telegram alert + // Client warnings (level: warning/info) → Log file only + if (entry.Level?.Equals("error", StringComparison.OrdinalIgnoreCase) ?? true) + { + logger.LogError(logMessage, args); + } + else + { + logger.LogWarning(logMessage, args); + } return Ok(); }