Lenjador.build(application_name, logger_config)
logger_config is a hash with logger types and their configuration.
loggers:
stdout:
level: 'debug'
Supported log levels:
- fatal
- error
- warn
- info
- debug
For example level: 'warn' will log everything with warn and above.
Creating a new stdout logger
require 'lenjador'
lenjador = Lenjador.build('myApp', stdout: nil)
When no loggers are specified, it creates a stdout logger by default.
Preprocessors allow modification of log messages, prior to sending of the message to the configured logger(s).
Excludes or masks defined fields of the passed hash object. You can specify the name of the field and which action to take on it. Nested hashes of any level are preprocessed as well.
Available actions:
prune
(default) - fully excludes the field and its value from the hash.mask
- replaces every character from the original value with*
. In case ofarray
,hash
orboolean
value is replaced with one*
.
preprocessors:
blacklist:
fields:
- key: password
- key: phone
action: mask
logger = Lenjador.build(application_name, logger_config, preprocessors)
input = {password: 'password', info: {phone: '+12055555555'}}
logger.debug("Received request", input)
Logger output:
Received request {"info":{"phone":"************"}}
Prunes or masks all the fields except those whitelisted in the configuration using JSON Pointer.
Only simple values(string
, number
, boolean
) can be whitelisted.
Whitelisting array and hash elements can be done using wildcard symbol ~
.
Available actions:
mask
(default) - replaces every character from the original value with*
. In case ofarray
,hash
orboolean
value is replaced with one*
.prune
- fully excludes the field and its value from the hash.
preprocessors:
whitelist:
pointers: ['/info/phone', '/addresses/~/host']
action: prune
logger = Lenjador.build(application_name, logger_config, preprocessors)
input = {password: 'password', info: {phone: '+12055555555'}, addresses: [{host: 'example.com', path: 'info'}]}
logger.debug("Received request", input)
Logger output:
Received request {password: "********", "info": {"phone": "+12055555555"}, "addresses": [{"host": "example.com","path": "****"}]}
A new version is created when a change is merged into the master branch that changes the version number in lenjador.gemspec
. A Github Action will create a tag for the version and push the .gem
file to rubygems.org