Provides beautiful console logging for Ruby applications. Implements fast, buffered log output.
When Ruby decided to reverse the order of exception backtraces, I finally gave up using the built in logging and decided restore sanity to the output of my programs once and for all!
Please see the project documentation for more details.
Getting Started - This guide explains how to use console for logging.
Command Line - This guide explains how the console gem can be controlled using environment variables.
Configuration - This guide explains how to implement per-project configuration for the console gem.
Integration - This guide explains how to integrate the console output into different systems.
Events - This guide explains how to log structured events with a well-defined schema.
Please see the project releases for all releases.
Console::Progress to emit through the logger that created it and safely handle zero totals.size_limit to Console::Format::Safe (default 16KiB) which rebuilds oversized records field-by-field, keeping as many top-level fields as fit within the limit.truncated object that maps each field name to why it was truncated: true (dropped for size) or the error (the value could not be serialized directly and a safe representation was kept in its place).Console::Format::Safe's limit: to depth_limit: (with a deprecated limit: alias) to clarify its purpose alongside the new size_limit:.Errno::ENODEV errors when calculating the width of a terminal that was been re-opened to File::NULL.process_id to serialized output records for clarity (pid is still included for backwards compatibility).
object_id to serialized output records only when the subject is not a string or class/module.Console::Compatible::Logger#add to accept **options.fiber_id to serialized output records to help identify which fiber logged the message.IO#write with a single string to reduce the chance of interleaved output.We welcome contributions to this project.
git checkout -b my-new-feature).git commit -am 'Add some feature').git push origin my-new-feature).To run the test suite:
bundle exec sus
To make a new release:
bundle exec bake gem:release:patch # or minor or major
In order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.
622 followers · starred Apr 2021
1,421 followers · starred Nov 2022
490 followers · starred Aug 2023
Provides beautiful console logging for Ruby applications. Implements fast, buffered log output.
When Ruby decided to reverse the order of exception backtraces, I finally gave up using the built in logging and decided restore sanity to the output of my programs once and for all!
Please see the project documentation for more details.
Getting Started - This guide explains how to use console for logging.
Command Line - This guide explains how the console gem can be controlled using environment variables.
Configuration - This guide explains how to implement per-project configuration for the console gem.
Integration - This guide explains how to integrate the console output into different systems.
Events - This guide explains how to log structured events with a well-defined schema.
Please see the project releases for all releases.
Console::Progress to emit through the logger that created it and safely handle zero totals.size_limit to Console::Format::Safe (default 16KiB) which rebuilds oversized records field-by-field, keeping as many top-level fields as fit within the limit.truncated object that maps each field name to why it was truncated: true (dropped for size) or the error (the value could not be serialized directly and a safe representation was kept in its place).Console::Format::Safe's limit: to depth_limit: (with a deprecated limit: alias) to clarify its purpose alongside the new size_limit:.Errno::ENODEV errors when calculating the width of a terminal that was been re-opened to File::NULL.process_id to serialized output records for clarity (pid is still included for backwards compatibility).
object_id to serialized output records only when the subject is not a string or class/module.Console::Compatible::Logger#add to accept **options.fiber_id to serialized output records to help identify which fiber logged the message.IO#write with a single string to reduce the chance of interleaved output.We welcome contributions to this project.
git checkout -b my-new-feature).git commit -am 'Add some feature').git push origin my-new-feature).To run the test suite:
bundle exec sus
To make a new release:
bundle exec bake gem:release:patch # or minor or major
In order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.
622 followers · starred Apr 2021
1,421 followers · starred Nov 2022
490 followers · starred Aug 2023