From e7436bb0e74b2b4b26d205e68a275ff0088428df Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sat, 4 Jul 2026 02:30:10 +0900 Subject: [PATCH] debug: add detailed logging for Telegram inquiry notifications - Add debug logging to Contact page form handler - Add detailed logging to TelegramInquiryNotificationService - Track inquiry submission and notification flow Co-Authored-By: Claude Haiku 4.5 --- src/TaxBaik.Web/Pages/Contact.cshtml.cs | 17 ++++++++++++++--- .../TelegramInquiryNotificationService.cs | 6 ++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/TaxBaik.Web/Pages/Contact.cshtml.cs b/src/TaxBaik.Web/Pages/Contact.cshtml.cs index 4d729ac..58bb9b0 100644 --- a/src/TaxBaik.Web/Pages/Contact.cshtml.cs +++ b/src/TaxBaik.Web/Pages/Contact.cshtml.cs @@ -7,6 +7,7 @@ namespace TaxBaik.Web.Pages; public class ContactModel : PageModel { private readonly InquiryService _inquiryService; + private readonly ILogger _logger; [BindProperty] public string Name { get; set; } = ""; @@ -26,35 +27,45 @@ public class ContactModel : PageModel [BindProperty] public bool Agree { get; set; } - public ContactModel(InquiryService inquiryService) + public ContactModel(InquiryService inquiryService, ILogger logger) { _inquiryService = inquiryService; + _logger = logger; } public async Task OnPostAsync() { + _logger.LogInformation("[Contact] POST 요청 시작: Name={Name}, Phone={Phone}, Service={Service}", Name, Phone, ServiceType); + if (!ModelState.IsValid || !Agree) + { + _logger.LogWarning("[Contact] 유효성 검사 실패 또는 동의 미체크"); return Page(); + } try { - await _inquiryService.SubmitAsync( + _logger.LogInformation("[Contact] SubmitAsync 호출 전"); + var inquiryId = await _inquiryService.SubmitAsync( Name, Phone, ServiceType, Message, Email, HttpContext.Connection.RemoteIpAddress?.ToString()); + _logger.LogInformation("[Contact] SubmitAsync 완료: InquiryId={Id}", inquiryId); TempData["Success"] = "상담 신청이 접수되었습니다. 빠른 시간 내에 연락드리겠습니다."; return RedirectToPage(); } catch (ValidationException ex) { + _logger.LogWarning(ex, "[Contact] 유효성 검사 오류: {Message}", ex.Message); ModelState.AddModelError("", ex.Message); return Page(); } - catch + catch (Exception ex) { + _logger.LogError(ex, "[Contact] 예외 발생"); ModelState.AddModelError("", "시스템 오류가 발생했습니다. 잠시 후 다시 시도해주세요."); return Page(); } diff --git a/src/TaxBaik.Web/Services/TelegramInquiryNotificationService.cs b/src/TaxBaik.Web/Services/TelegramInquiryNotificationService.cs index a9610d4..9f85297 100644 --- a/src/TaxBaik.Web/Services/TelegramInquiryNotificationService.cs +++ b/src/TaxBaik.Web/Services/TelegramInquiryNotificationService.cs @@ -22,10 +22,16 @@ public class TelegramInquiryNotificationService : IInquiryNotificationService public async Task NotifyCreatedAsync(int inquiryId, string name, string phone, string serviceType, string message, string? ipAddress, DateTime createdAtUtc, CancellationToken ct = default) { + _logger.LogInformation("[Telegram] NotifyCreatedAsync 시작: InquiryId={Id}, Name={Name}", inquiryId, name); + var botToken = _configuration["Telegram:BotToken"]; var chatId = _configuration["Telegram:InquiryChatId"]; if (string.IsNullOrWhiteSpace(chatId)) chatId = _configuration["Telegram:ChatId"]; + + _logger.LogInformation("[Telegram] 설정 확인: BotToken={Token}, ChatId={ChatId}", + string.IsNullOrWhiteSpace(botToken) ? "없음" : "있음", chatId); + if (string.IsNullOrWhiteSpace(botToken) || string.IsNullOrWhiteSpace(chatId)) { _logger.LogWarning("텔레그램 새 문의 알림 설정이 누락되었습니다. Telegram:BotToken 또는 Telegram:InquiryChatId/ChatId를 확인하세요.");