Contains some common setup used around logging infrastructure in multiple Savedo applications.
Add these lines to your application's Gemfile:
gem "service_logging", git: "https://github.com/Savedo/service_logging" # specify `tag: "v0.4.0"` to use a specific versionAnd then execute:
$ bundle
To enable the gem, set up the enabled option either per environment or globally in your config/application.rb:
config.service_logging.enabled = trueTo send custom data with payload add append_info_to_payload method to your controller:
class ApplicationController
# ...
# modify ActionController::Instrumentation method to add custom data to payload
private def append_info_to_payload(payload)
super
payload[:customer_id] = current_customer&.id
end
# ...
endand define parameter names in the configuration:
config.service_logging.custom_payload_params = %i(customer_id customer_email)Call AppendInfoToPayload#execute inside of append_info_to_payload method:
private def append_info_to_payload(payload)
super
# ...
ServiceLogging::AppendInfoToPayload.execute(payload, request, response)
endKeep in mind that AppendInfoToPayload works only with JSON based request/response.
You can set up filtering of json attributes in request/response by using JSONPath notation:
config.service_logging.filters = {
request_filters: [
"$..password",
],
response_filters: [
"$.data[?(@.type=='tokens')].id"
]
}Additionally, you can also filter request and response:
config.service_logging.filters = {
response_header_filters: ["Set-Cookie"],
request_header_filters: %w(HTTP_COOKIE HTTP_AUTHORIZATION)
}Do that via config.service_logging.lograge:
config.service_logging.lograge.ignore_actions = %w(HomeController#index)After checking out the repo, run bin/setup to install dependencies.
Then, run rake spec to run the tests. 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.
Bug reports and pull requests are welcome on GitHub at https://github.com/Savedo/service_logging.
The gem is available as open source under the terms of the MIT License.