这是indexloc提供的服务,不要输入任何密码
Skip to content

Custom timestamp #232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jun 25, 2024
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
Loading