Merge pull request #1100 from GetStream/feat/sentry

chore(llc): export defaultLogHandler, LogRecord
This commit is contained in:
Salvatore Giordano
2022-04-22 13:18:06 +02:00
committed by GitHub
2 changed files with 43 additions and 44 deletions
+14 -14
View File
@@ -64,7 +64,7 @@ class StreamChatClient {
StreamChatClient( StreamChatClient(
String apiKey, { String apiKey, {
this.logLevel = Level.WARNING, this.logLevel = Level.WARNING,
LogHandlerFunction? logHandlerFunction, this.logHandlerFunction = StreamChatClient.defaultLogHandler,
RetryPolicy? retryPolicy, RetryPolicy? retryPolicy,
@Deprecated(''' @Deprecated('''
Location is now deprecated in favor of the new edge server. Will be removed in v4.0.0. Location is now deprecated in favor of the new edge server. Will be removed in v4.0.0.
@@ -77,7 +77,6 @@ class StreamChatClient {
WebSocket? ws, WebSocket? ws,
AttachmentFileUploader? attachmentFileUploader, AttachmentFileUploader? attachmentFileUploader,
}) { }) {
this.logHandlerFunction = logHandlerFunction ?? _defaultLogHandler;
logger.info('Initiating new StreamChatClient'); logger.info('Initiating new StreamChatClient');
final options = StreamHttpClientOptions( final options = StreamHttpClientOptions(
@@ -134,7 +133,7 @@ class StreamChatClient {
'${CurrentPlatform.name}-' '${CurrentPlatform.name}-'
'${PACKAGE_VERSION.split('+')[0]}'; '${PACKAGE_VERSION.split('+')[0]}';
/// Additionals headers for all requests /// Additional headers for all requests
static Map<String, Object?> additionalHeaders = {}; static Map<String, Object?> additionalHeaders = {};
ChatPersistenceClient? _originalChatPersistenceClient; ChatPersistenceClient? _originalChatPersistenceClient;
@@ -189,7 +188,7 @@ class StreamChatClient {
/// final client = StreamChatClient("stream-chat-api-key", /// final client = StreamChatClient("stream-chat-api-key",
/// logHandlerFunction: myLogHandlerFunction); /// logHandlerFunction: myLogHandlerFunction);
///``` ///```
late LogHandlerFunction logHandlerFunction; final LogHandlerFunction logHandlerFunction;
StreamSubscription<ConnectionStatus>? _connectionStatusSubscription; StreamSubscription<ConnectionStatus>? _connectionStatusSubscription;
@@ -214,17 +213,18 @@ class StreamChatClient {
Stream<ConnectionStatus> get wsConnectionStatusStream => Stream<ConnectionStatus> get wsConnectionStatusStream =>
_wsConnectionStatusController.stream.distinct(); _wsConnectionStatusController.stream.distinct();
LogHandlerFunction get _defaultLogHandler => (LogRecord record) { /// Default log handler function for the [StreamChatClient] logger.
print( static void defaultLogHandler(LogRecord record) {
'${record.time} ' print(
'${_levelEmojiMapper[record.level] ?? record.level.name} ' '${record.time} '
'${record.loggerName} ${record.message} ', '${_levelEmojiMapper[record.level] ?? record.level.name} '
); '${record.loggerName} ${record.message} ',
if (record.error != null) print(record.error); );
if (record.stackTrace != null) print(record.stackTrace); if (record.error != null) print(record.error);
}; if (record.stackTrace != null) print(record.stackTrace);
}
/// /// Default logger for the [StreamChatClient].
Logger detachedLogger(String name) => Logger.detached(name) Logger detachedLogger(String name) => Logger.detached(name)
..level = logLevel ..level = logLevel
..onRecord.listen(logHandlerFunction); ..onRecord.listen(logHandlerFunction);
+29 -30
View File
@@ -5,37 +5,36 @@ export 'package:dio/src/dio_error.dart';
export 'package:dio/src/multipart_file.dart'; export 'package:dio/src/multipart_file.dart';
export 'package:dio/src/options.dart'; export 'package:dio/src/options.dart';
export 'package:dio/src/options.dart' show ProgressCallback; export 'package:dio/src/options.dart' show ProgressCallback;
export 'package:logging/logging.dart' show Logger, Level; export 'package:logging/logging.dart' show Logger, Level, LogRecord;
export 'package:rate_limiter/rate_limiter.dart'; export 'package:rate_limiter/rate_limiter.dart';
export './src/core/api/attachment_file_uploader.dart'
show AttachmentFileUploader;
export './src/core/api/requests.dart';
export './src/core/api/requests.dart';
export './src/core/api/responses.dart';
export './src/core/api/stream_chat_api.dart' show PushProvider;
export './src/core/error/error.dart';
export './src/core/models/action.dart';
export './src/core/models/attachment.dart';
export './src/core/models/attachment_file.dart';
export './src/core/models/channel_config.dart';
export './src/core/models/channel_model.dart';
export './src/core/models/channel_state.dart';
export './src/core/models/command.dart';
export './src/core/models/device.dart';
export './src/core/models/event.dart';
export './src/core/models/filter.dart' show Filter;
export './src/core/models/member.dart';
export './src/core/models/message.dart';
export './src/core/models/mute.dart';
export './src/core/models/own_user.dart';
export './src/core/models/reaction.dart';
export './src/core/models/read.dart';
export './src/core/models/user.dart';
export './src/core/util/extension.dart';
export './src/db/chat_persistence_client.dart';
export './src/event_type.dart';
export './src/location.dart';
export './src/ws/connection_status.dart';
export 'src/client/channel.dart'; export 'src/client/channel.dart';
export 'src/client/client.dart'; export 'src/client/client.dart';
export 'src/core/api/attachment_file_uploader.dart' show AttachmentFileUploader;
export 'src/core/api/requests.dart';
export 'src/core/api/requests.dart';
export 'src/core/api/responses.dart';
export 'src/core/api/stream_chat_api.dart' show PushProvider;
export 'src/core/error/error.dart';
export 'src/core/models/action.dart';
export 'src/core/models/attachment.dart';
export 'src/core/models/attachment_file.dart';
export 'src/core/models/channel_config.dart';
export 'src/core/models/channel_model.dart';
export 'src/core/models/channel_state.dart';
export 'src/core/models/command.dart';
export 'src/core/models/device.dart';
export 'src/core/models/event.dart';
export 'src/core/models/filter.dart' show Filter;
export 'src/core/models/member.dart';
export 'src/core/models/message.dart';
export 'src/core/models/mute.dart';
export 'src/core/models/own_user.dart';
export 'src/core/models/reaction.dart';
export 'src/core/models/read.dart';
export 'src/core/models/user.dart';
export 'src/core/util/extension.dart';
export 'src/db/chat_persistence_client.dart';
export 'src/event_type.dart';
export 'src/location.dart';
export 'src/ws/connection_status.dart';