From 227c9c123cdb7b2ccc2cd4ddfcf37c38deda5fee Mon Sep 17 00:00:00 2001 From: qzl Date: Wed, 1 Apr 2026 14:20:08 +0800 Subject: [PATCH] feat(logging): add logging to ChatBloc --- .../chat/presentation/bloc/chat_bloc.dart | 3 +++ .../presentation/bloc/chat_bloc_send.dart | 20 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/lib/features/chat/presentation/bloc/chat_bloc.dart b/apps/lib/features/chat/presentation/bloc/chat_bloc.dart index 4e2184d..46829bd 100644 --- a/apps/lib/features/chat/presentation/bloc/chat_bloc.dart +++ b/apps/lib/features/chat/presentation/bloc/chat_bloc.dart @@ -4,6 +4,7 @@ import 'dart:typed_data'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:image_picker/image_picker.dart'; import 'package:social_app/core/chat/chat_api.dart'; +import 'package:social_app/core/logging/logger.dart'; import 'package:social_app/core/chat/agent_stage.dart'; import 'package:social_app/core/chat/ag_ui_event.dart'; import 'package:social_app/core/chat/ag_ui_service.dart'; @@ -107,6 +108,8 @@ class ChatState implements ChatOrchestratorState { } class ChatBloc extends Cubit implements ChatOrchestrator { + final Logger _logger = getLogger('features.chat.bloc'); + ChatBloc({ AgUiService? service, required ChatApi chatApi, diff --git a/apps/lib/features/chat/presentation/bloc/chat_bloc_send.dart b/apps/lib/features/chat/presentation/bloc/chat_bloc_send.dart index 1e632d0..290003b 100644 --- a/apps/lib/features/chat/presentation/bloc/chat_bloc_send.dart +++ b/apps/lib/features/chat/presentation/bloc/chat_bloc_send.dart @@ -4,6 +4,14 @@ part of 'chat_bloc.dart'; extension _ChatBlocSend on ChatBloc { Future _sendMessage(String content, {List? images}) async { + _logger.info( + message: 'Sending chat message', + extra: { + 'message_length': content.length, + 'attachments_count': images?.length ?? 0, + }, + ); + final epoch = _sessionEpoch; final assistantBaselineAtSend = chatBlocLatestAssistantTimestamp( state.items, @@ -57,11 +65,21 @@ extension _ChatBlocSend on ChatBloc { if (epoch != _sessionEpoch) { return; } + _logger.info( + message: 'Chat message sent successfully', + extra: {'message_id': messageId}, + ); _syncUploadedAttachments( messageId: messageId, uploadedAttachments: sendResult.uploadedAttachments, ); - } catch (error) { + } catch (error, stackTrace) { + _logger.error( + message: 'Failed to send chat message', + error: error, + stackTrace: stackTrace, + extra: {'message': content}, + ); if (epoch != _sessionEpoch) { return; }