Thanks to visit codestin.com
Credit goes to github.com

Skip to content
4 changes: 2 additions & 2 deletions packages/talker/lib/src/extensions/extensions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ import 'package:talker/talker.dart';
extension TalkerDataInterfaceListExt on List<TalkerData> {
/// The method allows you to get
/// full text of logs or history
String get text {
String text({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
final sb = StringBuffer();
for (final data in this) {
sb.write('${data.generateTextMessage()}\n');
sb.write('${data.generateTextMessage(timeFormat: timeFormat)}\n');
}
return sb.toString();
}
Expand Down
13 changes: 8 additions & 5 deletions packages/talker/lib/src/models/talker_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ class TalkerData {
/// [TalkerError] -> [TalkerError.generateTextMessage]
///
/// {@endtemplate}
String generateTextMessage() {
return '$displayTitleWithTime$message$displayStackTrace';
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return '${displayTitleWithTime(timeFormat: timeFormat)}$message$displayStackTrace';
}
}

Expand All @@ -80,8 +81,9 @@ class TalkerData {
extension FieldsToDisplay on TalkerData {
/// Displayed title of [TalkerData]

String get displayTitleWithTime {
return '[$title] | $displayTime | ';
String displayTitleWithTime(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return '[$title] | ${displayTime(timeFormat: timeFormat)} | ';
}

/// Displayed stackTrace of [TalkerData]
Expand Down Expand Up @@ -117,5 +119,6 @@ extension FieldsToDisplay on TalkerData {
}

/// Displayed tile of [TalkerData]
String get displayTime => TalkerDateTimeFormatter(time).timeAndSeconds;
String displayTime({TimeFormat timeFormat = TimeFormat.timeAndSeconds}) =>
TalkerDateTimeFormatter(time, timeFormat: timeFormat).format;
}
5 changes: 3 additions & 2 deletions packages/talker/lib/src/models/talker_error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ class TalkerError extends TalkerData {

/// {@macro talker_data_generateTextMessage}
@override
String generateTextMessage() {
return '$displayTitleWithTime$displayMessage$displayError$displayStackTrace';
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return '${displayTitleWithTime(timeFormat: timeFormat)}$displayMessage$displayError$displayStackTrace';
}
}
5 changes: 3 additions & 2 deletions packages/talker/lib/src/models/talker_exception.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ class TalkerException extends TalkerData {

/// {@macro talker_data_generateTextMessage}
@override
String generateTextMessage() {
return '$displayTitleWithTime$displayMessage$displayException$displayStackTrace';
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return '${displayTitleWithTime(timeFormat: timeFormat)}$displayMessage$displayException$displayStackTrace';
}
}
5 changes: 3 additions & 2 deletions packages/talker/lib/src/models/talker_log.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ class TalkerLog extends TalkerData {

/// {@macro talker_data_generateTextMessage}
@override
String generateTextMessage() {
return '$displayTitleWithTime$displayMessage$displayException$displayStackTrace';
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return '${displayTitleWithTime(timeFormat: timeFormat)}$displayMessage$displayException$displayStackTrace';
}
}
8 changes: 7 additions & 1 deletion packages/talker/lib/src/settings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,11 @@ class TalkerSettings {
int maxHistoryItems = 1000,
this.titles = _defaultTitles,
Map<TalkerLogType, AnsiPen>? colors,
TimeFormat timeFormat = TimeFormat.timeAndSeconds,
}) : _useHistory = useHistory,
_useConsoleLogs = useConsoleLogs,
_maxHistoryItems = maxHistoryItems {
_maxHistoryItems = maxHistoryItems,
_timeFormat = timeFormat {
if (colors != null) {
_defaultColors.addAll(colors);
}
Expand All @@ -99,6 +101,10 @@ class TalkerSettings {
int get maxHistoryItems => _maxHistoryItems;
final int _maxHistoryItems;

/// the time format of the logs [TimeFormat]
TimeFormat get timeFormat => _timeFormat;
final TimeFormat _timeFormat;

/// Use writing talker records in file
// bool get writeToFile => _writeToFile && enabled;
// final bool _writeToFile;
Expand Down
4 changes: 2 additions & 2 deletions packages/talker/lib/src/talker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ class Talker {
_handleForOutputs(data);
if (settings.useConsoleLogs) {
_logger.log(
data.generateTextMessage(),
data.generateTextMessage(timeFormat: settings.timeFormat),
level: data.logLevel ?? LogLevel.error,
);
}
Expand Down Expand Up @@ -423,7 +423,7 @@ class Talker {
_handleForOutputs(data);
if (settings.useConsoleLogs) {
_logger.log(
data.generateTextMessage(),
data.generateTextMessage(timeFormat: settings.timeFormat),
level: logLevel ?? data.logLevel,
pen: data.pen ?? customPen,
);
Expand Down
8 changes: 8 additions & 0 deletions packages/talker/lib/src/utils/time_format.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/// Enum representing different time formats.
enum TimeFormat {
/// Format representing year, month, day, and time.
yearMonthDayAndTime,

/// Format representing time and seconds.
timeAndSeconds
}
33 changes: 28 additions & 5 deletions packages/talker/lib/src/utils/time_formatter.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,40 @@
/// Util for [DateTime] formatting
import 'package:talker/src/utils/time_format.dart';

/// Utility class for [DateTime] formatting.
class TalkerDateTimeFormatter {
const TalkerDateTimeFormatter(this.date);
/// Constructs a [TalkerDateTimeFormatter] with the given [date].
const TalkerDateTimeFormatter(this.date,
{this.timeFormat = TimeFormat.timeAndSeconds});

/// Date
/// The [DateTime] object to be formatted.
final DateTime date;

/// Get time and seconds for display in UI
/// Format ['HH:mm:s ms']
/// The [TimeFormat] to be used for formatting.
final TimeFormat? timeFormat;

/// Returns a string representation of the time and seconds.
/// Format: ['HH:mm:s ms']
String get timeAndSeconds {
final d = date;
final minutesPadded = '${d.minute}'.padLeft(2, '0');
final secondsPadded = '${d.second}'.padLeft(2, '0');

return '${d.hour}:$minutesPadded:$secondsPadded ${d.millisecond}ms';
}

/// Returns a string representation of the year, month, day, and time.
/// Format: ['YYYY-MM-DD HH:mm:s ms']
String get yearMonthDayAndTime =>
'${date.year}-${date.month}-${date.day} $timeAndSeconds';

String get format {
switch (timeFormat) {
case TimeFormat.timeAndSeconds:
return timeAndSeconds;
case TimeFormat.yearMonthDayAndTime:
return yearMonthDayAndTime;
case null:
return timeAndSeconds;
}
}
}
1 change: 1 addition & 0 deletions packages/talker/lib/src/utils/utils.dart
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
export 'error_handler.dart';
export 'time_formatter.dart';
export 'time_format.dart';
2 changes: 1 addition & 1 deletion packages/talker/test/extensions_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ void main() {
final log = TalkerLog('message');

final data = <TalkerData>[error, exception, log];
final fullMsg = data.text;
final fullMsg = data.text();
final expectedMsg =
'${error.generateTextMessage()}\n${exception.generateTextMessage()}\n${log.generateTextMessage()}\n';
expect(fullMsg, expectedMsg);
Expand Down
6 changes: 3 additions & 3 deletions packages/talker/test/talker_data_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void main() {
expect(
generatedMessage,
equals(
'${talkerData.displayTitleWithTime}${talkerData.displayMessage}${talkerData.displayStackTrace}',
'${talkerData.displayTitleWithTime()}${talkerData.displayMessage}${talkerData.displayStackTrace}',
),
);
});
Expand All @@ -58,7 +58,7 @@ void main() {
time: dateTime,
);

final displayTitleWithTime = talkerData.displayTitleWithTime;
final displayTitleWithTime = talkerData.displayTitleWithTime();
expect(
displayTitleWithTime,
equals(
Expand Down Expand Up @@ -101,7 +101,7 @@ void main() {
time: dateTime,
);

final displayTime = talkerData.displayTime;
final displayTime = talkerData.displayTime();
expect(displayTime,
equals(TalkerDateTimeFormatter(dateTime).timeAndSeconds));
});
Expand Down
2 changes: 1 addition & 1 deletion packages/talker/test/talker_error_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ void main() {
expect(
generatedMessage,
equals(
'${talkerError.displayTitleWithTime}${talkerError.displayMessage}${talkerError.displayError}${talkerError.displayStackTrace}',
'${talkerError.displayTitleWithTime()}${talkerError.displayMessage}${talkerError.displayError}${talkerError.displayStackTrace}',
),
);
});
Expand Down
2 changes: 1 addition & 1 deletion packages/talker/test/talker_exception_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ void main() {
expect(
generatedMessage,
equals(
'${talkerException.displayTitleWithTime}${talkerException.displayMessage}${talkerException.displayException}${talkerException.displayStackTrace}',
'${talkerException.displayTitleWithTime()}${talkerException.displayMessage}${talkerException.displayException}${talkerException.displayStackTrace}',
),
);
});
Expand Down
3 changes: 2 additions & 1 deletion packages/talker/test/talker_settings_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ class HttpTalkerLog extends TalkerLog {
AnsiPen get pen => AnsiPen()..blue();

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return pen.write(message ?? '');
}
}
19 changes: 12 additions & 7 deletions packages/talker_bloc_logger/lib/bloc_logs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@ class BlocEventLog extends TalkerLog {
String get key => TalkerLogType.blocEvent.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return _createMessage();
}

String _createMessage() {
final sb = StringBuffer();
sb.write(displayTitleWithTime);
sb.write(displayTitleWithTime());
sb.write('\n$message');
return sb.toString();
}
Expand All @@ -48,13 +49,14 @@ class BlocStateLog extends TalkerLog {
String get key => TalkerLogType.blocTransition.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return _createMessage();
}

String _createMessage() {
final sb = StringBuffer();
sb.write(displayTitleWithTime);
sb.write(displayTitleWithTime());
sb.write('\n$message');
sb.write(
'\n${'CURRENT state: ${settings.printStateFullData ? '\n${transition.currentState}' : transition.currentState.runtimeType}'}');
Expand All @@ -80,7 +82,8 @@ class BlocChangeLog extends TalkerLog {
String get key => TalkerLogType.blocTransition.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return _createMessage();
}

Expand Down Expand Up @@ -108,7 +111,8 @@ class BlocCreateLog extends TalkerLog {
String? get key => TalkerLogType.blocCreate.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return _createMessage();
}

Expand All @@ -132,7 +136,8 @@ class BlocCloseLog extends TalkerLog {
String? get key => TalkerLogType.blocClose.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
return _createMessage();
}

Expand Down
9 changes: 6 additions & 3 deletions packages/talker_dio_logger/lib/dio_logs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ class DioRequestLog extends TalkerLog {
String get key => TalkerLogType.httpRequest.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${requestOptions.method}] $message';

final data = requestOptions.data;
Expand Down Expand Up @@ -62,7 +63,8 @@ class DioResponseLog extends TalkerLog {
String get key => TalkerLogType.httpResponse.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${response.requestOptions.method}] $message';

final responseMessage = response.statusMessage;
Expand Down Expand Up @@ -108,7 +110,8 @@ class DioErrorLog extends TalkerLog {
String get key => TalkerLogType.httpError.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${dioException.requestOptions.method}] $message';

final responseMessage = dioException.message;
Expand Down
9 changes: 6 additions & 3 deletions packages/talker_flutter/lib/src/ui/talker_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,8 @@ class _TalkerViewState extends State<TalkerView> {
}

void _copyTalkerDataItemText(TalkerData data) {
final text = data.generateTextMessage();
final text =
data.generateTextMessage(timeFormat: widget.talker.settings.timeFormat);
Clipboard.setData(ClipboardData(text: text));
_showSnackBar(context, 'Log item is copied in clipboard');
}
Expand Down Expand Up @@ -212,7 +213,7 @@ class _TalkerViewState extends State<TalkerView> {

Future<void> _shareLogsInFile() async {
await _controller.downloadLogsFile(
widget.talker.history.text,
widget.talker.history.text(timeFormat: widget.talker.settings.timeFormat),
);
}

Expand All @@ -226,7 +227,9 @@ class _TalkerViewState extends State<TalkerView> {
}

void _copyAllLogs(BuildContext context) {
Clipboard.setData(ClipboardData(text: widget.talker.history.text));
Clipboard.setData(ClipboardData(
text: widget.talker.history
.text(timeFormat: widget.talker.settings.timeFormat)));
_showSnackBar(context, 'All logs copied in buffer');
}
}
6 changes: 4 additions & 2 deletions packages/talker_http_logger/lib/talker_http_logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ class HttpRequestLog extends TalkerLog {
String get key => TalkerLogType.httpRequest.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${request.method}] $message';

final headers = request.headers;
Expand Down Expand Up @@ -80,7 +81,8 @@ class HttpResponseLog extends TalkerLog {
String get title => TalkerLogType.httpResponse.key;

@override
String generateTextMessage() {
String generateTextMessage(
{TimeFormat timeFormat = TimeFormat.timeAndSeconds}) {
var msg = '[$title] [${response.request?.method}] $message';

final headers = response.request?.headers;
Expand Down
Loading