Activesupport::BroadcastLogger
This is an unofficial extraction of Rails' v8 ActiveSupport::BroadcastLogger
which has been:
- refactored (here) to only execute blocks once, and
- backported to work with Rails v5.2+ and Ruby 2.7+.
If the suite of gems this is part of is loaded in any version of Rails >= 5.2, it will replace the logging tooling completely.
This gem is automatically depended on and configured by activesupport-tagged_logging, so you don't need to do anything beyond adding that gem to your app's Gemfile, and configuring it.
Simplified, the load order is basically:
- Enhanced activesupport-logger which was ripped from Rails v8.0
- Enhanced activesupport-broadcast_logger (this gem) which was ripped from Rails v8.0, and this PR
- Enhanced activesupport-tagged_logging which was ripped from Rails v8.0, and this PR
Above load order is handled for you in activesupport-tagged_logging (not this gem), so depend on that, not this. ;)
Installation
NOTE: Don't do this. Instead, use activesupport-tagged_logging (not this gem, but which uses this gem as a dependency).
Install the gem and add to the application's Gemfile by executing:
$ bundle add activesupport-broadcast_logger
If bundler is not being used to manage dependencies, install the gem by executing:
$ gem install activesupport-broadcast_logger
Usage
NOTE: Don't do this. Instead, use activesupport-tagged_logging (not this gem, but which uses this gem as a dependency, and also configures this gem for you).
require "activesupport-broadcast_logger"
With activesupport-logger
gem
activesupport-logger is automatically depended on and configured by this gem, so you don't need to do anything else.
IMPORTANT: When using this gem,
do not require "activesupport-logger"
in your code.
Load order matters.
NOTE: The bits of logic that are unique to this gem are in the namespace Activesupport
(sic).
General Info
Primary Namespaces |
Activesupport::BroadcastLogger && ActiveSupport::BroadcastLogger && Activesupport::FixPr53105
|
---|---|
documentation | on Github.com, Latest release on RubyDoc.info, HEAD on RubyDoc.info |
expert support | |
... 💖 |
💻 🌏 |
🤝 Contributing
If you need some ideas of where to help, you could work on adding more code coverage, or if it is already 💯 then check issues, or PRs, or use the gem and think about how it could be better.
Also, see CONTRIBUTING.md.
Code Coverage
🌈 Contributors
Made with contributors-img.
Star History
🪇 Code of Conduct
Everyone interacting in this project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
📌 Versioning
This Library adheres to Semantic Versioning 2.0.0. Violations of this scheme should be reported as bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new major versions.
To get a better understanding of how SemVer is intended to work over a project's lifetime, read this article from the creator of SemVer:
As a result of this policy, you can (and should) specify a dependency on these libraries using the Pessimistic Version Constraint with two digits of precision.
For example:
spec.add_dependency("activesupport-broadcast_logger", "~> 2.0")
See CHANGELOG.md for list of releases.
📄 License
The gem is available as open source under the terms of the MIT License .
See LICENSE.txt for the official Copyright Notice.
© Copyright
- Copyright (c) David Heinemeier Hansson
- Parts original to this extraction are:
- Copyright (c) 2024 Peter H. Boling of Rails Bling
🤑 One more thing
You made it to the bottom of the page, so perhaps you'll indulge me for another 20 seconds. I maintain many dozens of gems, including this one, because I want Ruby to be a great place for people to solve problems, big and small. Please consider supporting my efforts via the giant yellow link below, or one of the others at the head of this README.