mason_logger
A reusable Dart logger used by the Mason CLI (package:mason_cli).
0.3.5
910K downloads/mo
#372 most downloaded on pub.dev
felangel/mason
What this package is like to depend on
Last release 5 months ago
20 Mar 2026
Release timing varies
gaps range from 2 weeks to 13 months
Nearly every release is documented
notes for 28 of 28 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
43 releases · first in 2021
2 releases in the last 12 months
see the full history below
Release timeline
43 releases · Nov 2021 to Mar 2026Releases
latest 43-
0.3.520 Mar 2026Release notes
Open source →- revert: upgrade
pkg:win32to^6.0.0- due to use of native assets this was breaking hook execution on windows
- we are still planning to upgrade to win32 v6.0.0 but more time is needed to ensure this is done safely
Release notes
Open source →- revert: upgrade
pkg:win32to^6.0.0- due to use of native assets this was breaking hook execution on windows
- revert: upgrade
-
0.3.420 Mar 2026Release notes
Open source →Release notes
Open source → -
0.3.302 Mar 2025 -
0.3.213 Jan 2025 -
0.3.105 Sep 2024 -
0.3.017 Aug 2024 -
0.2.1618 Jul 2024Release notes
Open source →- fix:
Logger.progressspams terminal on overflow - chore: add
fundingtopubspec.yaml
- fix:
-
0.2.1519 Apr 2024Release notes
Open source →- refactor: upgrade
pkg:win32to^0.5.4(#1300)- bumps the Dart SDK minimum version up to
3.3.0
- bumps the Dart SDK minimum version up to
- refactor: upgrade
-
0.2.1419 Apr 2024Release notes
Open source →- fix: `The getter 'STD_HANDLE' isn't defined for the class 'WindowsTerminal' (#1298)
-
0.2.1319 Apr 2024 -
0.2.1212 Feb 2024 -
0.2.1110 Jan 2024 -
0.2.1002 Oct 2023 -
0.2.919 Sep 2023Release notes
Open source →- fix: arrow keys on windows (#816)
- chore: improve lint rules
- chore:
dart fix --apply - chore(deps): upgrade dependencies
-
0.2.828 Jul 2023Release notes
Open source →- fix:
confirmgracefully handlesutf8decode errors - docs: add topics to
pubspec.yaml
- fix:
-
0.2.728 Jun 2023Release notes
Open source →-
feat: add
promptAnytoLoggerfinal logger = Logger(); // Prompt for a dynamic list of values. final List<String> languages = logger.promptAny( 'What are your favorite programming languages?', ); if (languages.contains('dart')) { logger.info('Nice, I like dart too! 🎯'); }
-
-
0.2.619 May 2023Release notes
Open source →-
fix:
chooseAnyrenders selected results usingdisplaywhen specified -
feat: add
LogStyleandLogTheme// Create a custom `LogTheme` by overriding zero or more log styles. final customTheme = LogTheme( detail: (m) => darkGray.wrap(m), info: (m) => m, success: (m) => lightGreen.wrap(m), warn: (m) => yellow.wrap(m), err: (m) => lightRed.wrap(m), alert: (m) => backgroundRed.wrap(white.wrap(m)), ); // Create a logger with the custom theme final logger = Logger(theme: customTheme); // Use the logger logger.info('hello world'); // Perform a one-off override String? myCustomStyle(String? m) => lightCyan.wrap(m); logger.info('custom style', style: myCustomStyle);
-
-
0.2.514 Feb 2023 -
0.2.430 Jan 2023Release notes
Open source →- fix:
warnwith an emptytagshould not include[] - deps: upgrade to
Dart >=2.17andvery_good_analysis ^3.1.0
- fix:
-
0.2.313 Nov 2022 -
0.2.201 Nov 2022 -
0.2.119 Oct 2022 -
0.2.013 Oct 2022Release notes
Open source →-
BREAKING feat: add generic support to
chooseOneandchooseAnyenum Shape { square, circle, triangle} void main() { final logger = Logger(); final shape = logger.chooseOne<Shape>( 'What is your favorite shape?', choices: Shape.values, display: (shape) => '${shape.name}', ); logger.info('You chose: $shape'); final shapes = logger.chooseAny<Shape>( 'Or did you want to choose multiples?', choices: Shape.values, defaultValues: [shape], display: (shape) => '${shape.name}', ); logger.info('You chose: $shapes'); }
-
-
0.1.413 Oct 2022Release notes
Open source →-
feat: add
ProgressOptionsAPIimport 'package:mason_logger/mason_logger.dart'; Future<void> main() async { // 1. ✨ Create a custom ProgressOptions. const progressOptions = ProgressOptions( animation: ProgressAnimation( frames: ['🌑', '🌒', '🌓', '🌔', '🌕', '🌖', '🌗', '🌘'], ), ); // 2. 💉 Inject `progressOptions` into your Logger. final logger = Logger(progressOptions: progressOptions); // 3. 🤤 Admire your custom progress animation. final progress = logger.progress('Calculating'); await Future.delayed(const Duration(seconds: 3)); progress.complete('Done!'); }
-
-
0.1.316 Sep 2022Release notes
Open source →-
feat: add
linkAPIfinal logger = Logger(); final repoLink = link( message: 'GitHub Repository', uri: Uri.parse('https://github.com/felangel/mason'), ); logger.info('To learn more, visit the $repoLink.');
-
-
0.1.217 Aug 2022Release notes
Open source →- feat: render milliseconds on progress duration
- refactor(deps): remove
package:meta - refactor: use
IOOverrides
-
0.1.120 Jul 2022Release notes
Open source →- refactor(deps): remove
pkg:universal_io - docs: fix typo in
READMEsnippet
- refactor(deps): remove
-
0.1.018 Jul 2022Release notes
Open source →- BREAKING: support log levels (default
LevelisLevel.info) - BREAKING: mark
Progress()as@internal - BREAKING:
alertwrites tostderrinstead ofstdout - BREAKING:
Progress.fail(...)writes tostdoutinstead ofstderr - BREAKING: remove deprecated
Progress.call(...)(useProgress.completeinstead).
- BREAKING: support log levels (default
-
0.1.0-dev.1401 Jul 2022 pre-releaseRelease notes
Open source →- feat:
Progress.updatefinal progress = logger.progress('Calculating'); await Future<void>.delayed(const Duration(milliseconds: 500)); progress.update('Halfway!'); await Future<void>.delayed(const Duration(milliseconds: 500)); progress.complete('Done!');
- feat:
-
0.1.0-dev.1314 Jun 2022 pre-release -
0.1.0-dev.1209 Jun 2022 pre-releaseRelease notes
Open source →- fix:
chooseOneAPI windows compatibility - feat:
chooseAny/// Ask user to choose zero or more options. final desserts = logger.chooseAny( 'Which desserts do you like?', choices: ['🍦', '🍪', '🍩'], );
- fix:
-
0.1.0-dev.1108 Jun 2022 pre-releaseRelease notes
Open source →- fix: write errors and warnings to
stderrLogger().err(...)Logger().warn(...)Logger().progress(...).fail(...)
- fix: write errors and warnings to
-
0.1.0-dev.1002 Jun 2022 pre-releaseRelease notes
Open source →-
feat:
chooseOneAPIfinal favoriteColor = logger.chooseOne( 'What is your favorite color?', choices: ['red', 'green', 'blue'], defaultValue: 'blue', );
-
-
0.1.0-dev.928 May 2022 pre-releaseRelease notes
Open source →- feat:
progressAPI enhancementsfinal progress = Logger().progress('calculating'); try { await _performCalculation(); // Complete progress successfully. progress.complete(); } catch (error, stackTrace) { // Terminate progress unsuccessfully. progress.fail(); }
- feat:
-
0.1.0-dev.808 Apr 2022 pre-release -
0.1.0-dev.730 Mar 2022 pre-releaseRelease notes
Open source →- fix: multiline prompts are outputting twice
- when using
confirmandprompt
- when using
- fix: multiline prompts are outputting twice
-
0.1.0-dev.610 Mar 2022 pre-release -
0.1.0-dev.521 Feb 2022 pre-release -
0.1.0-dev.419 Jan 2022 pre-releaseRelease notes
Open source →- fix:
progressstring truncation - feat: add
confirm - feat: add
defaultValuetoprompt - feat: improve
progresstime style - docs: update example and
README
- fix:
-
0.1.0-dev.325 Dec 2021 pre-release -
0.1.0-dev.202 Dec 2021 pre-releaseRelease notes
Open source →- test: 100% test coverage
- docs: README updates to include usage
- docs: include example
-
0.1.0-dev.119 Nov 2021 pre-release -
0.1.0-alpha.118 Jul 2022 pre-release withdrawnNothing published for this version