From f106b96b10c322181f63659e0f346aff719b4e23 Mon Sep 17 00:00:00 2001 From: Garry Shutler Date: Thu, 12 Apr 2018 16:07:31 +0100 Subject: [PATCH 1/2] Record less detail in logs Entities and their events can contain sensitive information that shouldn't be recorded to logs. This requires a breaking change to the logger.error method in that it now needs to accept two arguments: message and error, so that it can record the backtrace alongside the message. --- lib/entity_store/event_bus.rb | 6 +++--- lib/entity_store/logging.rb | 5 +---- lib/entity_store/store.rb | 10 +++++----- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/entity_store/event_bus.rb b/lib/entity_store/event_bus.rb index 16c2f3c..a8e3461 100644 --- a/lib/entity_store/event_bus.rb +++ b/lib/entity_store/event_bus.rb @@ -15,7 +15,7 @@ def send_to_subscriber subscriber, receiver_name, event subscriber.new.send(receiver_name, event) log_debug { "called #{subscriber.name}##{receiver_name} with #{event.inspect}" } rescue => e - log_error "#{e.message} when calling #{subscriber.name}##{receiver_name} with #{event.inspect}", e + log_error "#{subscriber.name}##{receiver_name} failed - #{e.class} - #{e.message} - entity=#{event.entity_id}, version=#{event.entity_version}", e end def subscribers_to(event_name) @@ -61,9 +61,9 @@ def replay(since, type, subscriber) begin event = EntityStore::Config.load_type(event_data_object.type).new(event_data_object.attrs) subscriber.new.send(event.receiver_name, event) - log_info { "replayed #{event.inspect} to #{subscriber.name}##{event.receiver_name}" } + log_debug { "replayed #{event.inspect} to #{subscriber.name}##{event.receiver_name}" } rescue => e - log_error "#{e.message} when replaying #{event_data_object.inspect} to #{subscriber}", e + log_error "#{subscriber.name}##{event.receiver_name} replay failed - #{e.class} - #{e.message} - entity=#{event.entity_id}, version=#{event.entity_version}", e end end event_data_objects = feed_store.get_events(event_data_objects.last.id, type, max_items) diff --git a/lib/entity_store/logging.rb b/lib/entity_store/logging.rb index 1c590cc..7738e6e 100644 --- a/lib/entity_store/logging.rb +++ b/lib/entity_store/logging.rb @@ -8,10 +8,7 @@ module Logging end def log_error(message, exception) - if Config.logger - Config.logger.error message - Config.logger.error exception.backtrace.join("\n\t") - end + Config.logger.error(message, exception) if Config.logger end end end diff --git a/lib/entity_store/store.rb b/lib/entity_store/store.rb index 2ae9620..77ae32f 100644 --- a/lib/entity_store/store.rb +++ b/lib/entity_store/store.rb @@ -15,8 +15,8 @@ def add(entity) entity rescue => e - logger.error { "Store#add error: #{e.inspect} - #{entity.inspect}" } - raise e + log_error "Store#add error - id=#{entity.id} (#{entity.class}) - #{e.class} - #{e.message}", e + raise end def save(entity) @@ -40,8 +40,8 @@ def save(entity) end entity rescue => e - log_error "Store#save error: #{e.inspect} - #{entity.inspect}", e - raise e + log_error "Store#save error - id=#{entity.id} (#{entity.class}) - #{e.class} - #{e.message}", e + raise end def snapshot_entity(entity) @@ -120,7 +120,7 @@ def get_with_ids(ids, options={}) entity.apply_event(event) log_debug { "Applied #{event.inspect} to #{id}" } rescue => e - log_error "Failed to apply #{event.class.name} #{event.attributes} to #{id} with #{e.inspect}", e + log_error "Failed to apply #{event.class.name} - #{e.class} - #{e.message} - entity=#{id}, version=#{event.entity_version}", e raise if options.fetch(:raise_exception, true) end entity.version = event.entity_version From c2632a4c8d7322956bb35e4c47656fce811bb40a Mon Sep 17 00:00:00 2001 From: Garry Shutler Date: Thu, 12 Apr 2018 16:10:33 +0100 Subject: [PATCH 2/2] Bump version to 2.0.0 Required due to the breaking change to the logger#error interface. --- lib/entity_store/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/entity_store/version.rb b/lib/entity_store/version.rb index c57ea27..7058b08 100644 --- a/lib/entity_store/version.rb +++ b/lib/entity_store/version.rb @@ -1,3 +1,3 @@ module EntityStore - VERSION = "1.2.0".freeze + VERSION = "2.0.0".freeze end