- Updating gem dependencies:
- bundler -> 1.17.3
- dogstatsd -> 5.2.0
- rspec -> 3.10.0
- sentry-raven -> 3.1.2
- The Formatter can now be configured to exclude selected log fields. Currently only the Json formatter implements this.
- Add config option to enable/disable metrics from grape
- feature: 'log hooks', a mechanism for modifying the log event just before it is added to the appender
- Add config option to enable/disable metrics from ActionController
- Fix spec for Ruby 2.4.1
- Bump version to 2.10 in order to properly highlight more significant change
- Add missing Changelog entry
- Add support for sinatra applications by including
Sapience::Extensions::Sinatra::Middleware::Logging
middleware - Bump Ruby version to 2.4.1
- Sapience will return more parameters in logs created by Rails::Rack::Logger
- Silence rails rack logger for rails 3 by setting
silent_rack: true
in sapience.yml
- Add ability to stop generating metrics for ActiveRecord::Notification with config option
silent_active_record
- Bugfix: don't auto-add tags for every application level exception
- Include current environment in log entries
- Bugfix: clear tags after pushing log to processing queue
- Bugfix: Fix sentry logging when payload is nil
- Add ability to reduce noise from default rails log subscribers with config option
silent_rails
- Add compatibility fix for concurrent-ruby library logger which expect
call
method to be defined
- Fix issues after applying fronzen_string_literal = true. Make it compatible to Ruby 2.1
- Fix RuboCop auto-correct changes
- Bump Ruby to version 2.3.4
- Add fronzen_string_literal: true to be compatible with coming Ruby 3
- Reevoocop changes
- Add shortcut metrics
Sapience.metrics.success(module_name<string>, action<string>, opts<hash>)
Sapience.metrics.error(module_name<string>, action<string>, opts<hash>)
Sapience.metrics.exception(module_name<string>, action<string>, opts<hash>)
- Set Sapience.config.app_name when APP_NAME environment variable is set
- Put back single_thread_executor and leave immediate_executor only for test environment
- Changing the log level of ActiveRecord has the side effect of changing the log level of Rails.logger. We don't want that therefore we remove the assignment.
- Add namespaced events
- Set immediate_executor by default to avoid Errno::EIO error for multithreaded processes. This could happen when orphaned process (whose parent has died) attempts to get stdio from parent process, or when stream is closed.
- Log directly to STDOUT for internal errors
- Add
Sapience::ErrorHandler::Silent#capture
- Add
Sapience::ErrorHandler::Silent#capture!
- Add
Sapience::ErrorHandler::Silent#user_context
- Add
Sapience::ErrorHandler::Silent#tags_context
- Add
Sapience::ErrorHandler:Sentry#capture
- Add
Sapience::ErrorHandler:Sentry#capture!
- Add "flush" as an instance method in logger.
- Fix Sapience.logger. From now it logs into all configured Stream appenders.
- Ability to configure ActiveRecord log level independently
- Fix issue where the Grape extension was incorrectly logging 500 response codes as 404's
- Fix metrics collection for 2.0.1
- Add metrics for model actions (create, update, destroy)
- Prevent Raven from recursively capturing its own exceptions
- Make logger interface explicit (no metaprogramming)
- Separate error handling and metrics from appenders
- Added
Sapience.capture_exception
andSapience.capture_message
methods - Added
logger.error!
andlogger.fatal!
that also sends any exception to the configured error handler
- Reduce log output noise from the sentry logger
- Fix a problem with logging extra parameters to sentry
- Fix NoMethodError in Grape::Notification
- Exclude test apps from Gem
- Fix a NoMethodError with logging the response format in grape
- Automatically add default
datadog
appender when callingSapience.metrics
- Added
filter_parameters
configuration to obfuscate sensitive information such as passwords for rack-like applications - Require Grape version >= 0.16.2, raise if lesser version is found
- Delayed configuration of Sentry until the configuration is valid
- Rename
SAPIENCE_APP_NAME
toAPP_NAME
- Allow for configuration inheritance (see the history for config_loader.rb)
- Require
app_name
to be configured. Either set it with the environment variableSAPIENCE_APP_NAME
or provided it when configuring the application. - Fixes problems with Datadog namespace always being nil.
- Fix loading configuration outside of Rack application
- Rename Sapience.metrix to Sapience.metrics
- Update datadog appender to use Datadog::Statsd from dogstatsd-ruby gem
- Fix issue with not resetting previously attached appenders when calling
Sapience.configure
.
- Reduce noise for assets:precompile by changing default Railtie log level to :warn instead of :debug
- Set Rails.logger even some gems disables logging on initialisation.
- Adds support for Rails apps with disabled ActiveRecord
- Adds
request_id
to the action_controller/log_subscriber
- Rename
bin/rake
tobin/tests
to avoid conflicts with rake
- Added test apps for Rails and Grape frameworks
- Testing different Grape versions (0.16.2, 0.17.0)
- Improved request logging for Grape
- Merge and send coverage from main gem and Rails/Grape test apps
- Allow the log_executor to be configured to either
:single_thread_executor
or:immediate_executor
- Test coverage improvement
- Working rails integration
- Minor adjustments to the log_formatter to make it more compatible with log_stasher.
- Adds debugging and coverage for sneakers integration
- Add an instance method for the
#name
of the appender
- Fixed all appenders, it only worked for Sapience::Logger.
- Added method to test exceptions
Sapience.test_exception(:error)
- Rename Appender::File to Appender::Stream. Accept option stream instead of file in
sapience.yml
- Add missing bang to
.deep_symbolize_keys!
- Make sure the default environment is loaded in case all else fails. Warn about this.
- Set tags to
{ environment: Sapience.environment }
for sentry
- Support sneakers timing implementation
- Validate the sentry/raven dsn when creating the appender
- Add support for sneakers
- Prevent configuring twice (adds double appenders)
- Add missing
#time
method for datadog - Adds coverage for previous release
- Add missing
#count
method for datadog