ONS JSON Logger RubyGem

A utility class for generating structured JSON log entries with optional additional fields suitable for web applications. Note that this gem targets Ruby 3.1 and above.

Installation

gem install ons-json-logger

Examples

require 'logger'
require 'ons-json-logger'
require 'sinatra'

LOGGER      = Logger.new($stdout)
JSON_LOGGER = JSONLogger.new(application: 'amazing-webapp', environment: 'production')

get '/signout' do
  LOGGER.info(JSON_LOGGER.log(level: 'INFO',
                              message: 'User signed out',
                              module_name: 'app',
                              user: { id: , ip_address: @client_ip },
                              http: { method: 'GET', path: '/signout', status: 200, user_agent: request.user_agent }))
end

Testing

rake test

Licence

This library is licensed under the MIT licence. Full licence text is available in LICENCE.

Copyright (C) 2024 Crown Copyright (Office for National Statistics)