Project

memolog

0.0
The project is in a healthy, maintained state
Memolog is an in-memory logger, which extend any other logger. Designed to work with Sentry. It adds `memolog` extra section to Sentry errors.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.4.3
~> 0.1.0
~> 2
 Project Readme

Memolog

Memolog is an in-memory logger, which extend any other logger. Designed to work with Sentry but it's not necessary.

Installation

Add this line to your application's Gemfile:

gem "memolog"

And then execute:

$ bundle install

Or install it yourself as:

$ gem install memolog

Configuration

Use this example during application initialization process (this example implement default values):

Memolog.configure do |config|
  config.debug = false
  config.formatter = Logger::Formatter.new
  config.middlewares = %i[rails sidekiq]
  config.log_size_limit = 50_000
end

Memolog.init_middlewares!

Available options are:

  • debug - set it to true if you need to leave Memolog.dump result outside Memolog.run {} block.
  • formatter - setup your own formatter.
  • middlewares - define here what you want to initialize in #init_middlewares! call.
  • log_size_limit - max log length in #dump.

Usage

Please call Memolog.extend_logger(Rails.logger) or any other logger you want to collect. After that when error occured you can call Memolog.dump in your code and get log from Rails.logger so you can collect it to another place (Sentry or etc). Also there will be unique identifier to find logs behaviour on your server or log collection system.

Memolog has init code for Rails (Middleware) and Sidekiq (Middleware). It implement all hacks on the Memolog.init! call. Also you can add Memolog.run {} around logs you want to collect and release it with Memolog.dump inside this block.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/skirushkin/memolog.

License

The gem is available as open source under the terms of the MIT License.