45 lines
1.2 KiB
Dart
45 lines
1.2 KiB
Dart
class LogMessageDto {
|
|
final DateTime timestamp;
|
|
final String serviceName;
|
|
final String channel;
|
|
final String level; // 'Information', 'Warning', 'Error', 'Debug', 'Trace'
|
|
final String message;
|
|
final String? exception;
|
|
|
|
const LogMessageDto({
|
|
required this.timestamp,
|
|
required this.serviceName,
|
|
required this.channel,
|
|
required this.level,
|
|
required this.message,
|
|
this.exception,
|
|
});
|
|
|
|
factory LogMessageDto.fromJson(Map<String, dynamic> json) {
|
|
DateTime parsedTime = DateTime.now();
|
|
if (json['timestamp'] != null) {
|
|
parsedTime = DateTime.tryParse(json['timestamp'].toString()) ?? DateTime.now();
|
|
}
|
|
|
|
return LogMessageDto(
|
|
timestamp: parsedTime.toLocal(),
|
|
serviceName: json['serviceName']?.toString() ?? '',
|
|
channel: json['channel']?.toString() ?? '',
|
|
level: json['level']?.toString() ?? 'Information',
|
|
message: json['message']?.toString() ?? '',
|
|
exception: json['exception']?.toString(),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'timestamp': timestamp.toUtc().toIso8601String(),
|
|
'serviceName': serviceName,
|
|
'channel': channel,
|
|
'level': level,
|
|
'message': message,
|
|
'exception': exception,
|
|
};
|
|
}
|
|
}
|