dotup_flutter_logger_sqflite 1.0.0 dotup_flutter_logger_sqflite: ^1.0.0 copied to clipboard
SqfLite log writer for https://github.com/dotupNET/dotup_dart_logger
// import 'dart:async';
// import 'dart:io';
// import 'dart:math';
// import 'package:dotup_dart_logger/dotup_dart_logger.dart';
// import 'package:dotup_flutter_logger/dotup_flutter_logger.dart';
// import 'package:dotup_flutter_logger_sqflite/dotup_flutter_logger_sqflite.dart';
// import 'package:dotup_flutter_widgets/dotup_flutter_widgets.dart';
// import 'package:flutter/gestures.dart';
// import 'package:flutter/material.dart';
// import 'package:path_provider/path_provider.dart';
// import 'package:provider/provider.dart';
// late final ILogWriter sqfLiteLogWriter;
// final logger = Logger('Logger demo');
// void main() {
// WidgetsFlutterBinding.ensureInitialized();
// LoggerManager.addLogWriter(ConsoleLogWriter(LogLevel.All, formater: PrettyFormater(showColors: true)));
// mainAsync();
// }
// Future<void> mainAsync() async {
// var dir = await getApplicationDocumentsDirectory();
// final dbFolder = dir.path;
// if (!await Directory(dbFolder).exists()) {
// await Directory(dbFolder).create(recursive: true);
// }
// final databaseFile = '$dbFolder/logging.db';
// await SqfLiteLoggerManager.initialize(databaseFile);
// sqfLiteLogWriter = SqfLiteLoggerManager.getSqfLiteLogWriter(LogLevel.All); // SqfLiteLogWriter(LogLevel.All);
// LoggerManager.addLogWriter(sqfLiteLogWriter);
// runApp(const LoggerDemoProvider());
// }
// class LoggerDemoApp extends StatelessWidget {
// const LoggerDemoApp({Key? key}) : super(key: key);
// @override
// Widget build(BuildContext context) {
// logger.console('LoggerDemoApp build');
// return Consumer<ThemeProvider>(
// builder: (context, themeProvider, child) {
// return MaterialApp(
// scrollBehavior: TouchAndMouseScrollBehavior(),
// debugShowCheckedModeBanner: false,
// title: 'dotup.de Logger Demo',
// theme: themeProvider.lightTheme,
// darkTheme: themeProvider.darkTheme,
// themeMode: themeProvider.themeMode,
// home: LoggerDemoScaffold(),
// );
// },
// );
// }
// }
// class LoggerDemoProvider extends StatelessWidget {
// const LoggerDemoProvider({Key? key}) : super(key: key);
// @override
// Widget build(BuildContext context) {
// logger.console('LoggerDemoProvider build');
// return MultiProvider(
// providers: [
// ChangeNotifierProvider(
// create: (context) {
// final themeProvider = ThemeProvider.defaultThemes();
// themeProvider.switchTheme(false);
// return themeProvider;
// },
// )
// ],
// child: const LoggerDemoApp(),
// );
// }
// }
// class LoggerDemoScaffold extends StatefulWidget {
// const LoggerDemoScaffold({Key? key}) : super(key: key);
// @override
// _LoggerDemoScaffoldState createState() => _LoggerDemoScaffoldState();
// }
// class _LoggerDemoScaffoldState extends State<LoggerDemoScaffold> {
// late LoggerListController controller;
// late LoggerListSettings settings;
// Timer? _timer;
// @override
// void initState() {
// super.initState();
// controller = LoggerListController(stackSize: 50, logEntryReader: logEntryReader);
// settings = LoggerListSettings.standard();
// }
// @override
// Widget build(BuildContext context) {
// return LoggerScaffold(
// loggerListController: controller,
// appBar: AppBar(
// title: const Text('dotup Logger'),
// actions: [
// IconButton(
// icon: _timer == null ? const Icon(Icons.play_arrow_outlined) : const Icon(Icons.pause),
// tooltip: 'Start/Stop adding entries',
// onPressed: () {
// if (_timer == null) {
// _timer = Timer.periodic(const Duration(seconds: 1), (_) {
// _createDemoEntry();
// });
// setState(() {});
// } else {
// _timer!.cancel();
// _timer = null;
// setState(() {});
// }
// },
// ),
// IconButton(
// icon: const Icon(Icons.add),
// tooltip: 'Add entry',
// onPressed: _createDemoEntry,
// ),
// IconButton(
// icon: const Icon(Icons.settings),
// tooltip: 'Einstellungen',
// onPressed: () async {
// logger.info('Einstellungen geöffnet');
// final newSettings = await Navigator.of(context).push<LoggerListSettings>(MaterialPageRoute(
// builder: (context) => LoggerListSettingsPage(settings: settings),
// ));
// if (newSettings != null) {
// controller.setFilter(newSettings.logLevelStates);
// controller.stackSize = newSettings.pageSize;
// settings = newSettings;
// logger.info('Neue Einstellungen übernommen');
// }
// },
// ),
// ],
// ),
// title: 'dotup Logger',
// );
// }
// void _createDemoEntry() {
// var random = Random(DateTime.now().microsecondsSinceEpoch);
// var next = 1 << random.nextInt(LogLevel.values.length);
// var nextLevel = LogLevel.fromValue(next);
// switch (nextLevel) {
// case LogLevel.Debug:
// logger.debug("This is an debug entry. Disable debug entries if you're ready for production!",
// source: 'SOURCE1');
// break;
// case LogLevel.Error:
// logger.error(MyError("We've a problem!"));
// break;
// case LogLevel.Exception:
// logger.exception(MyException('Well. It can happen..'));
// break;
// case LogLevel.Info:
// logger.info("I think you've know this information.");
// break;
// case LogLevel.Warn:
// logger.warn("Uuuh it's working. Maybe you can take a look at your source code why this happens so foten?");
// break;
// default:
// logger.warn('nextLevel == ${nextLevel.name}');
// }
// }
// Future<List<LogEntry>> logEntryReader(int currentItemsCount, int partialItemsCount) async {
// final repo = SqfLiteLoggerManager.getLoggerRepository();
// final result = await repo.readPaged(skip: currentItemsCount, take: partialItemsCount, orderBy: 'timeStamp desc');
// // await Future.delayed(Duration(seconds: 2));
// print(result?.length.toString());
// return result?.map((e) => LoggerMapper.toLogEntry(e)).toList() ?? [];
// }
// }
// class MyError extends Error {
// final String message;
// MyError(this.message);
// @override
// String toString() {
// return message;
// }
// }
// class MyException implements Exception {
// final String? message;
// MyException([this.message]);
// @override
// String toString() {
// if (message == null) return 'Exception';
// return 'Exception: $message';
// }
// }
// class TouchAndMouseScrollBehavior extends MaterialScrollBehavior {
// // Override behavior methods and getters like dragDevices
// @override
// Set<PointerDeviceKind> get dragDevices => {
// PointerDeviceKind.touch,
// PointerDeviceKind.mouse,
// // etc.
// };
// }