fix: Enable logging in production

This commit is contained in:
Anton Stubenbord
2023-10-19 18:26:02 +02:00
parent 7d1c0dffe4
commit 520bfbd7b1
104 changed files with 632 additions and 257 deletions

View File

@@ -0,0 +1,45 @@
import 'dart:convert';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:logger/logger.dart';
import 'package:paperless_mobile/features/logging/models/formatted_log_message.dart';
class FormattedPrinter extends LogPrinter {
static final _timestampFormat = DateFormat("yyyy-MM-dd HH:mm:ss.SSS");
static const _mulitlineObjectEncoder = JsonEncoder.withIndent(null);
@override
List<String> log(LogEvent event) {
final unformattedMessage = event.message;
final formattedMessage = switch (unformattedMessage) {
FormattedLogMessage m => m.format(),
Iterable i => _mulitlineObjectEncoder
.convert(i)
.padLeft(FormattedLogMessage.maxLength),
Map m => _mulitlineObjectEncoder
.convert(m)
.padLeft(FormattedLogMessage.maxLength),
_ => unformattedMessage.toString().padLeft(FormattedLogMessage.maxLength),
};
final formattedLevel = event.level.name
.toUpperCase()
.padRight(Level.values.map((e) => e.name.length).max);
final formattedTimestamp = _timestampFormat.format(event.time);
return [
'$formattedTimestamp\t$formattedLevel --- $formattedMessage',
if (event.error != null) ...[
"---BEGIN ERROR---",
event.error.toString(),
"---END ERROR---",
],
if (event.stackTrace != null) ...[
"---BEGIN STACKTRACE---",
event.stackTrace.toString(),
"---END STACKTRACE---"
],
];
}
}