feat(logging): add logging to ChatBloc
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user