riverpod_dev_logger 0.0.6 copy "riverpod_dev_logger: ^0.0.6" to clipboard
riverpod_dev_logger: ^0.0.6 copied to clipboard

A developer-focused logging package for Riverpod with automatic provider context detection using Dart Zones. Supports Riverpod 2.0+.

example/lib/main.dart

import 'package:riverpod/riverpod.dart';
import 'package:riverpod/legacy.dart';
import 'package:riverpod_dev_logger/riverpod_dev_logger.dart';

// 1. Create a logger instance (optional, logger methods are static or via Ref extension)
final logger = Logger();

// 2. Define providers
final counterProvider = StateProvider<int>((ref) {
  // Use logger from Ref extension
  ref.logger.info('Initializing counter provider');
  return 0;
}, name: 'CounterProvider');

final doubleCounterProvider = Provider<int>((ref) {
  final count = ref.watch(counterProvider);
  ref.logger.info('Calculating double counter: $count * 2');
  return count * 2;
}, name: 'DoubleCounterProvider');

// 3. Define a Notifier
class TodoNotifier extends Notifier<List<String>> {
  @override
  List<String> build() {
    return ['Learn Riverpod', 'Learn Logging'];
  }

  void addTodo(String todo) {
    state = [...state, todo];
    // Custom logging with manual context if needed, but didUpdateProvider handles it
  }
}

final todoProvider = NotifierProvider<TodoNotifier, List<String>>(
    TodoNotifier.new,
    name: 'TodoProvider');

void main() {
  // 4. Configure the logger
  RiverpodDevLogger.configure(
    level: LogLevel.debug,
    enableContextDetection: true,
  );

  // 5. Initialize ProviderContainer with the observer
  final container = ProviderContainer(
    observers: [
      RiverpodLoggerObserver(
        logger: RiverpodDevLogger(),
      ),
    ],
  );

  print('--- Riverpod Dev Logger Example ---\n');

  // Trigger provider initialization
  container.read(counterProvider);
  container.read(doubleCounterProvider);

  // Update state
  print('\nUpdating counter...');
  container.read(counterProvider.notifier).state++;

  // Update notifier state
  print('\nAdding todo...');
  container.read(todoProvider.notifier).addTodo('New Todo');

  print('\nExample finished.');
}
0
likes
0
points
161
downloads

Publisher

unverified uploader

Weekly Downloads

A developer-focused logging package for Riverpod with automatic provider context detection using Dart Zones. Supports Riverpod 2.0+.

Repository (GitHub)
View/report issues

Topics

#riverpod #logging #debug #context

License

unknown (license)

Dependencies

meta, riverpod

More

Packages that depend on riverpod_dev_logger