https://github.com/broxus/fancy_logger
https://github.com/broxus/fancy_logger
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/broxus/fancy_logger
- Owner: broxus
- License: agpl-3.0
- Created: 2023-06-23T07:13:18.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-14T07:53:44.000Z (about 2 years ago)
- Last Synced: 2025-01-29T02:46:55.940Z (over 1 year ago)
- Language: Dart
- Size: 49.8 KB
- Stars: 2
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Fancy Logger
[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link]
[![License: AGPLv3][license_badge]][license_link]
[](https://github.com/broxus/fancy_logger/actions/workflows/main.yaml)
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][flutter_install_link] installed on your machine.**
Add [fancy_logger][pubdev_link] to your `pubspec.yaml`:
```yaml
dependencies:
fancy_logger:
```
## Basic usage ๐
Setup DI:
```dart
@InjectableInit(
externalPackageModulesBefore: [
ExternalModule(FancyLoggerPackageModule),
],
)
void configureDependencies() => getIt.init();
```
Init:
```dart
Future configureLogger() async {
final fancyLogger = inject();
await fancyLogger.init({Level.ALL: 100});
}
```
## Melos magic ๐ช
Using [melos](https://melos.invertase.dev/) 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](https://melos.invertase.dev/guides/automated-releases#versioning) will update version and build our library automatically using commit messages and tags. [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0) 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][github_actions_link] powered by [Very Good Workflows][very_good_workflows_link] 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][very_good_analysis_link] for a strict set of analysis options used by our team. Code coverage is enforced using the [Very Good Workflows][very_good_coverage_link].
## 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"](https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow). 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.
[flutter_install_link]: https://docs.flutter.dev/get-started/install
[github_actions_link]: https://docs.github.com/en/actions/learn-github-actions
[license_badge]: https://img.shields.io/badge/license-AGPLv3-blue.svg
[license_link]: https://opensource.org/license/agpl-v3/
[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg
[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis
[very_good_cli_link]: https://pub.dev/packages/very_good_cli
[very_good_coverage_link]: https://github.com/marketplace/actions/very-good-coverage
[very_good_workflows_link]: https://github.com/VeryGoodOpenSource/very_good_workflows
[pubdev_link]: https://pub.dev/packages/fancy_logger