NyplLogFormatter
This is a logger that logs according to NYPL's agreed-upon format.
It is a subclass of the stdlib Logger class, so it works exactly as a regular Logger does.
The only advantage to subclassing is that we can bake in custom formatting.
Ruby Version Support
Our .travis.yml tests against multiple Ruby versions.
Feel free to add more.
Installation
Add this line to your application's Gemfile:
gem 'nypl_log_formatter'
And then execute:
$ bundle
Or install it yourself as:
$ gem install nypl_log_formatter
Usage
require 'nypl_log_formatter'
my_logger = NyplLogFormatter.new('path/to/file.log')
my_logger.info('this will log JSON')
my_logger.warn('So will this')
# Contents of file.log
# Logfile created on 2018-01-17 15:51:31 -0500 by logger.rb/61378
#{"level":"INFO","message":"this will log JSON","timestamp":"2018-01-17T15:51:53.481-0500"}
#{"level":"WARN","message":"So will this","timestamp":"2018-01-17T15:51:54.279-0500"}
Instantiating A Logger
The constructor (and all other methods, really) of NyplLogFormatter are the same as a Logger.
Which means you can do EVERYTHING you can with a Logger, in the same way.
That includes:
- Setting Log level
- Using
STDOUTinstead of a file. - Setting log rotation.
For more info see your ruby version's documentation for the Logger class.
Development
After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/nypl/ruby_nypl_log_formatter.