Scrolls alternatives and similar gems
Based on the "Logging" category.
Alternatively, view Scrolls alternatives based on common mentions on social networks and blogs.
-
Semantic Logger
Semantic Logger is a feature rich logging framework, and replacement for existing Ruby & Rails loggers. -
Logging
A flexible logging library for use in Ruby programs based on the design of Java's log4j library. -
Log4r
Log4r is a comprehensive and flexible logging library for use in Ruby programs. It features a heirarchical logging system of any number of levels, custom level names, multiple output destinations per log event, custom formatting, and more. -
Puts Debuggerer
Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Scrolls or a related project?
Popular Comparisons
README
Scrolls
Scrolls is a library for generating logs of the structure key=value
.
Installation
Add this line to your application's Gemfile:
gem 'scrolls'
And then execute:
$ bundle
Or install it yourself as:
$ gem install scrolls
Philosophy
Scrolls follows the belief that logs should be treated as data. One way to think of them is the blood of your infrastructure. Logs are a realtime view of what is happening on your systems.
Usage
0.9.0 and later
require 'scrolls'
Scrolls.init(
timestamp: true,
global_context: {app: "scrolls", deploy: "production"},
exceptions: "multi"
)
Scrolls.log(at: "test")
Scrolls.context(context: "block") do
Scrolls.log(at: "exec")
end
begin
raise
rescue Exception => e
Scrolls.log_exception(e, at: "raise")
end
You can also use Scrolls#log
and Scrolls#log_exception
without initalizing:
require 'scrolls'
Scrolls.log(test: "test")
Defaults
Here are the defaults Scrolls#init
:
stream: STDOUT
facility: Syslog::LOG_USER
time_unit: "seconds"
timestamp: false
exceptions: "single"
global_context: {}
syslog_options: Syslog::LOG_PID|Syslog::LOG_CONS
escape_keys: false
Older Versions
Pre 0.9.0
require 'scrolls'
Scrolls.add_timestamp = true
Scrolls.global_context(:app => "scrolls", :deploy => "production")
Scrolls.log(:at => "test")
Scrolls.context(:context => "block") do
Scrolls.log(:at => "exec")
end
begin
raise
rescue Exception => e
Scrolls.log_exception(:at => "raise", e)
end
Produces:
now="2017-09-01T00:37:13Z" app=scrolls deploy=production at=test
now="2017-09-01T00:37:13Z" app=scrolls deploy=production context=block at=exec
now="2017-09-01T00:37:13Z" app=scrolls deploy=production at=exception class=RuntimeError exception_id=70149797587080
now="2017-09-01T00:37:13Z" app=scrolls deploy=production at=exception class=RuntimeError exception_id=70149797587080 site="./test-scrolls.rb:16:in <main>"
History
This library originated from various logging methods used internally at Heroku. Starting at version 0.2.0 Scrolls was ripped apart and restructured to provide a better foundation for the future. Tests and documentation were add at that point as well.
Thanks to the following people for influencing this library.
- Mark McGranaghan
- Noah Zoschke
- Mark Fine
- Fabio Kung
- Ryan Smith
LICENSE
MIT License
*Note that all licence references and agreements mentioned in the Scrolls README section above
are relevant to that project's source code only.