Fancy Logger

style: very good analysis License: AGPLv3 app

The Logging Library for Flutter with SQLite Integration is a powerful and easy-to-use logging solution for Flutter applications. It provides a seamless way to log events, errors, and debug information in your Flutter projects while storing the logs in a SQLite database. Additionally, the library offers the capability to export logs in JSON format.

Installation ๐Ÿ’ป

โ— In order to start using Fancy Logger you must have the Flutter SDK installed on your machine.

Add fancy_logger to your pubspec.yaml:

dependencies:
  fancy_logger:

Basic usage ๐Ÿ› 

Setup DI:

@InjectableInit(  
  externalPackageModulesBefore: [
    ExternalModule(FancyLoggerPackageModule),
  ],
)  
void configureDependencies() => getIt.init();  

Init:

Future<void> configureLogger() async {
  final fancyLogger = inject<FancyLogger>();
  await fancyLogger.init({Level.ALL: 100});
}

Melos magic ๐Ÿช„

Using melos makes it very easy to work with the project, so enjoy.

You can run any job interactively run running melos run and selecting needed case or directly (e.g. melos run test).

Bootstrap ๐Ÿ

Melos takes care about dependencies of all packages, including managing of local-generated library version. So, just run:

melos bs

Codegen ๐Ÿฆพ

This thing will run all code generators for all packages:

$ melos run codegen

Clean up ๐Ÿงน

Just run commands below to clean all, including build directories and flutter projects.

melos clean

Tests โœ”๏ธ

You can run all tests at one by running this command.

melos run test

Code ๐Ÿ“Š

You can run code analysis:

melos run analyze

Code format ๐Ÿ—ƒ๏ธ

melos run check-format will check, melos run format will fix dart code formatting.

melos run check-format
melos run format

Prepare to commit ๐Ÿค๐Ÿป

melos run check-all will ckeck, analyze and run all tests.

melos run check-all

Conventional Commits โค๏ธ

This magic will update version and build our library automatically using commit messages and tags. Conventional Commits is a lightweight convention on top of commit messages.

Version ๐Ÿท๏ธ

Package version control is done by melos. It runs by gh action 'Create version PR' melos version -a --yes.

Continuous Integration ๐Ÿค–

Fancy Logger comes with a built-in GitHub Actions workflow powered by Very Good Workflows but you can also add your preferred CI/CD solution.

Out of the box, on each pull request and push, the CI formats, lints, and tests the code. This ensures the code remains consistent and behaves correctly as you add functionality or make changes. The project uses Very Good Analysis for a strict set of analysis options used by our team. Code coverage is enforced using the Very Good Workflows.

Github Secrets ๐Ÿ”‘

BOT_ACCESS_TOKEN: Personal access token (PAT) used to fetch the repository. We should use PAT and not default GITHUB_TOKEN because "When you use the repository's GITHUB_TOKEN to perform tasks, events triggered by the GITHUB_TOKEN, with the exception of workflow_dispatch and repository_dispatch, will not create a new workflow run". We want to trigger a workflow from the workflow (to run tests), so we need to use PAT. This thing is used in version workflow.

Libraries

fancy_logger
Fancy logger
fancy_logger.module