import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:logger/logger.dart'; import 'package:path/path.dart' as path; import 'util.dart'; late final Logger logger; void initLogger() { // if is debug mode, don't log to file logger = Logger( filter: ProductionFilter(), printer: SimplePrinter(printTime: true, colors: false), output: _buildOutput(), ); } String logsDir() { return path.join(Util.getStorageDir(), 'logs'); } Directory ensureLogDirectory(String logDirPath) { return Directory(logDirPath)..createSync(recursive: true); } LogOutput? _buildOutput() { // if is debug mode, don't log to file if (!kDebugMode && Util.isDesktop()) { final logDirPath = logsDir(); ensureLogDirectory(logDirPath); return FileOutput(file: File('$logDirPath/client.log')); } return null; }