loglens 0.5.0 copy "loglens: ^0.5.0" to clipboard
loglens: ^0.5.0 copied to clipboard

A flexible, extensible logging utility with dynamic modules/layers, persistence, and a simple console UI.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:loglens/loglens.dart';
import 'package:loglens_flutter/loglens_flutter.dart';

enum LogModules {
  auth,
  pay,
}

enum LogLayers { ui, dataSource }

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await LogLens.init(
    store: SharedPrefsLoggerStore(),
    defaultModules: LogModules.values,
    defaultLayers: LogLayers.values,
    onLog: (log) => print(log.message),
    // debugGuard defaults to true; set false to allow logging in release builds.
  );
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: const ConsoleDemo(),
    );
  }
}

class ConsoleDemo extends StatelessWidget {
  const ConsoleDemo({super.key});

  @override
  Widget build(BuildContext context) {
    final controller = FloatingLogConsoleController();
    return Scaffold(
      appBar: AppBar(title: const Text('LogLens Example')),
      body: ListView(
        padding: const EdgeInsets.all(16),
        children: [
          const Text('''Guide:
  1. Initialize: LogLens.init()
  2. Log: LogLens.i(message, module, layer)
  3. File names are resolved from StackTrace automatically
'''),
          const SizedBox(height: 8),
          FilledButton(
            onPressed: () => controller.toggle(context),
            child: const Text('Toggle Floating Log Window'),
          ),
          const SizedBox(height: 8),
          FilledButton.tonal(
            onPressed: () {
              LogLens.i('User pressed login button', LogModules.auth, LogLayers.ui);
              LogLens.e('UserLogin Failed', LogModules.auth, LogLayers.dataSource);
              LogLens.i(
                'User pressed pay button, paid \$100 \nhaherroreoreeeeasdjanjshsvgyqvdgfqcdgqvdsujhbhcfdukvdgfbkvhdfbvdfvda \n haha \n hehehe erroreoreeeeasdjanjshsvgyqvdgfqcdgqvdsujhbhcfdukvdgfbkvhdfbvdfvd',
                LogModules.pay,
                LogLayers.ui,
              );
            },
            child: const Text('Write Sample Logs'),
          ),
          const SizedBox(height: 8),
          FilledButton.tonal(
            onPressed: () {
              Navigator.of(context).push(
                MaterialPageRoute(builder: (_) => const LogConsolePage()),
              );
            },
            child: const Text('Open Full Console'),
          ),
        ],
      ),
    );
  }
}
2
likes
115
points
17
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A flexible, extensible logging utility with dynamic modules/layers, persistence, and a simple console UI.

Repository (GitHub)
View/report issues

Topics

#logging #console #debugging

License

MIT (license)

Dependencies

logger

More

Packages that depend on loglens