feat(logging): add logging to ChatBloc

This commit is contained in:
qzl
2026-04-01 14:20:08 +08:00
parent b0734da2ae
commit 227c9c123c
2 changed files with 22 additions and 1 deletions
@@ -4,6 +4,7 @@ import 'dart:typed_data';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:social_app/core/chat/chat_api.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/agent_stage.dart';
import 'package:social_app/core/chat/ag_ui_event.dart'; import 'package:social_app/core/chat/ag_ui_event.dart';
import 'package:social_app/core/chat/ag_ui_service.dart'; import 'package:social_app/core/chat/ag_ui_service.dart';
@@ -107,6 +108,8 @@ class ChatState implements ChatOrchestratorState {
} }
class ChatBloc extends Cubit<ChatState> implements ChatOrchestrator { class ChatBloc extends Cubit<ChatState> implements ChatOrchestrator {
final Logger _logger = getLogger('features.chat.bloc');
ChatBloc({ ChatBloc({
AgUiService? service, AgUiService? service,
required ChatApi chatApi, required ChatApi chatApi,
@@ -4,6 +4,14 @@ part of 'chat_bloc.dart';
extension _ChatBlocSend on ChatBloc { extension _ChatBlocSend on ChatBloc {
Future<void> _sendMessage(String content, {List<XFile>? images}) async { Future<void> _sendMessage(String content, {List<XFile>? images}) async {
_logger.info(
message: 'Sending chat message',
extra: {
'message_length': content.length,
'attachments_count': images?.length ?? 0,
},
);
final epoch = _sessionEpoch; final epoch = _sessionEpoch;
final assistantBaselineAtSend = chatBlocLatestAssistantTimestamp( final assistantBaselineAtSend = chatBlocLatestAssistantTimestamp(
state.items, state.items,
@@ -57,11 +65,21 @@ extension _ChatBlocSend on ChatBloc {
if (epoch != _sessionEpoch) { if (epoch != _sessionEpoch) {
return; return;
} }
_logger.info(
message: 'Chat message sent successfully',
extra: {'message_id': messageId},
);
_syncUploadedAttachments( _syncUploadedAttachments(
messageId: messageId, messageId: messageId,
uploadedAttachments: sendResult.uploadedAttachments, 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) { if (epoch != _sessionEpoch) {
return; return;
} }