AppLog constructor
AppLog({
- LogFilter? filter,
- LogPrinter? printer,
- LogOutput? output,
- Level? level,
Create a new instance of AppLog.
You can provide a custom printer, filter and output. Otherwise a
PrettyPrinter is used — same as Logger's own default, except with
DateTimeFormat.onlyTimeAndSinceStart turned on so the console shows a
timestamp (bare PrettyPrinter() prints no time by default), and
excludePaths: ['package:http_inspect_view'] so the method-count stack
trace box skips past AppLog's own log/t/d/i/w/e/f frames
and lands on your actual call site instead. filter defaults to
DevelopmentFilter, output to ConsoleOutput.
Implementation
AppLog({
LogFilter? filter,
LogPrinter? printer,
LogOutput? output,
Level? level,
}) : _filter = filter ?? Logger.defaultFilter(),
_printer =
printer ??
PrettyPrinter(
colors: true,
printEmojis: true,
dateTimeFormat: DateTimeFormat.onlyTimeAndSinceStart,
excludePaths: const ['package:http_inspect_view'],
),
_output = output ?? Logger.defaultOutput() {
if (level != null) _filter.level = level;
if (kReleaseMode && !_warnedReleaseMode) {
_warnedReleaseMode = true;
debugPrint(
'[AppLog] Warning: AppLog is intended for debug/profile use — this '
'is a release build. Logs are still being formatted, printed to '
'your output, and held in memory for the HTTP Inspector\'s Logs '
'tab (unreachable in release, but still retained). Guard your '
'AppLog usage with kDebugMode/kProfileMode if that\'s unintended.',
);
}
_initialization = Future.wait([
_filter.init(),
_printer.init(),
_output.init(),
]);
}