logger_easier 0.0.3+1 copy "logger_easier: ^0.0.3+1" to clipboard
logger_easier: ^0.0.3+1 copied to clipboard

A modern logging management solution tailored specifically for Dart and Flutter applications. It provides a highly flexible and feature-rich logging system designed to simplify developers' log managem [...]

Logger Easier #

logo

A modern logging solution designed for Dart and Flutter applications. It offers rich features and flexible configuration options to simplify log management.

screenshot


Table of Contents #

✨ Key Features #

  • Multi-level Log Management: Supports seven log levels (TRACE, DEBUG, INFO, WARN, ERROR, CRITICAL, FATAL), allowing fine-grained control over log output.
  • Plugin-based Architecture: Leverages middleware for extensibility. Easily integrate custom or third-party log handlers.
  • Powerful Log Rotation: Offers size-based and time-based log rotation strategies with automatic compression and cleanup of old logs.
  • Diverse Output Options: Supports console output (with colors), file output, custom outputs, and asynchronous logging.
  • High-performance Asynchronous Mode: Ensures non-blocking log recording with batch processing for optimized performance.
  • Flexible Formatting and Filtering: Customize log formats, including timestamps, levels, and error messages. Filter logs based on levels or patterns.
  • Runtime Monitoring: Includes built-in performance tracking and error handling, measuring operation durations and capturing uncaught exceptions automatically.

πŸ“¦ Installation #

Add the dependency in your pubspec.yaml file:

dependencies:
  logger_easier: ^latest_version

Then run:

flutter pub get

πŸš€ Getting Started #

import 'package:logger_easier/logger_easier.dart';

void main() {
  final logger = Logger(
    minLevel: LogLevel.debug,
    middlewares: [
      ConsoleMiddleware(),
      FileMiddleware(
        logDirectory: 'logs',
        baseFileName: 'app.log',
        rotateConfig: LogRotateConfig(
          strategy: SizeBasedStrategy(
            maxSize: 10 * 1024 * 1024, // 10MB
            maxBackups: 5,
          ),
        ),
      ),
    ],
  );

  logger.trace('This is a trace log');
  logger.debug('This is a debug log');
  logger.info('This is an info log');
  logger.warn('This is a warning log');
  logger.error('This is an error log', error: Exception('An error occurred'));
  logger.critical('This is a critical error log');
  logger.fatal('This is a fatal error log');
}

πŸ“– Core Concepts #

Log Levels #

Logger Easier supports seven log levels, ranked from lowest to highest severity:

  • TRACE: Most detailed, usually for debugging.
  • DEBUG: For debugging during development.
  • INFO: General operational logs indicating progress.
  • WARN: Non-critical issues or warnings.
  • ERROR: Significant issues requiring attention.
  • CRITICAL: Severe errors affecting overall application stability.
  • FATAL: Irrecoverable errors, leading to application termination.

Control the output level via the minLevel parameter in Logger. For example, setting minLevel to LogLevel.info outputs only INFO and above levels.

Log Middleware #

Middleware in Logger Easier processes logs in specific stages like formatting, filtering, and output. Combine various middleware to customize your logging pipeline.

Built-in Middleware

  • ConsoleMiddleware: Outputs logs to the console with color coding.
  • FileMiddleware: Writes logs to files and supports rotation.

Custom Middleware

To create custom middleware, implement the AbstractLogMiddleware interface. Example: Sending logs to a remote server.

Log Rotation #

Prevent log files from becoming too large with automatic log rotation.

logger_easier_for_log_rotate

Rotation Strategies

  1. Size-based (SizeBasedStrategy): Rotate when file exceeds a specified size.
  2. Time-based (TimeBasedStrategy): Rotate at fixed intervals.

Compression Handlers

Logger Easier supports file compression during rotation to save space. Implement the CompressionHandler interface for custom algorithms or use the built-in GzipCompressionHandler.

Rotation Configuration

Customize rotation with LogRotateConfig, which includes options like rotation strategy, compression, and storage monitoring.

πŸ› οΈ Advanced Usage #

Custom Middleware #

Develop tailored middleware to integrate third-party services or unique log-handling logic.

Log Encryption #

Secure sensitive logs with encryption using the LogEncryptor class. Example:

final encryptor = LogEncryptor('your-secret-key');
await encryptor.encrypt(File('logs/app.log'), File('logs/app.log.enc'));

βœ… Best Practices #

  • Initialize logging early in the app lifecycle.
  • Choose appropriate log levels for clarity and performance.
  • Avoid sensitive data exposure in logs.
  • Regularly review and analyze logs for issues.
  • Use rotation and compression to manage storage.

πŸ“š API Documentation #

Explore detailed API documentation: API Reference

πŸ‘ Contribution Guide #

We welcome contributions via issues, pull requests, or documentation improvements. Please read CONTRIBUTING.md for details.


πŸ“œ License #

This project is licensed under the MIT License. See LICENSE for more information.

Enjoy using Logger Easier! If you find this library helpful, give us a ⭐️.

2
likes
115
points
7
downloads
screenshot

Publisher

verified publisherflutter-online.top

Weekly Downloads

A modern logging management solution tailored specifically for Dart and Flutter applications. It provides a highly flexible and feature-rich logging system designed to simplify developers' log management while offering significant customization capabilities.

Homepage
Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

MIT (license)

Dependencies

archive, crypto, encrypt, intl, path, stack_trace, synchronized, vm_service

More

Packages that depend on logger_easier