From 638e6a83a923e61d8b320818a39befd62529ae1a Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 3 Jan 2014 15:28:49 +0100 Subject: make logging more precise * do not log the SystemExit after the fork * log error classes alongside messages * unify logging in retry_request_once * debug now logs every step * info has one message per user created * warn only logs errors during the actions * error only logs crashes --- bin/tapicero | 3 ++- lib/tapicero/user_database.rb | 23 ++++++++++------------- lib/tapicero_daemon.rb | 1 + 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/bin/tapicero b/bin/tapicero index b2eebed..c20a114 100755 --- a/bin/tapicero +++ b/bin/tapicero @@ -68,8 +68,9 @@ else end begin Daemons.run("#{BASE_DIR}/lib/tapicero_daemon.rb", options) +rescue SystemExit rescue Exception => exc Tapicero.logger.error "Uncaught exception. Daemon will die." - Tapicero.logger.error exc.to_s + Tapicero.logger.error exc.class.name + ": " + exc.to_s Tapicero.logger.error exc.backtrace.join("\n") end diff --git a/lib/tapicero/user_database.rb b/lib/tapicero/user_database.rb index c499850..5266b4a 100644 --- a/lib/tapicero/user_database.rb +++ b/lib/tapicero/user_database.rb @@ -18,18 +18,17 @@ module Tapicero def secure(security) # let's not overwrite if we have a security doc already return if secured? && !Tapicero::FLAGS.include?('--overwrite-security') - Tapicero.logger.info "Writing Security to #{security_url}" - Tapicero.logger.debug security.to_json - retry_request_once "Writing security" do + retry_request_once "Writing security to" do + Tapicero.logger.debug security.to_json CouchRest.put security_url, security end end def add_design_docs pattern = BASE_DIR + 'designs' + '*.json' - Tapicero.logger.debug "looking for design docs in #{pattern}" + Tapicero.logger.debug "Looking for design docs in #{pattern}" Pathname.glob(pattern).each do |file| - retry_request_once "Uploading design doc" do + retry_request_once "Uploading design doc to" do upload_design_doc(file) end end @@ -38,13 +37,12 @@ module Tapicero def upload_design_doc(file) url = design_url(file.basename('.json')) CouchRest.put url, JSON.parse(file.read) - Tapicero.logger.debug "uploaded design doc #{file.basename} to #{url}" rescue RestClient::Conflict end def destroy - retry_request_once "Deleting Database" do + retry_request_once "Deleting database" do delete_db end end @@ -53,25 +51,24 @@ module Tapicero def create_db CouchRest.new(host).create_db(name) - Tapicero.logger.debug "database created successfully." rescue RestClient::PreconditionFailed # database already existed end def delete_db db = CouchRest.new(host).database(name) db.delete! if db - Tapicero.logger.debug "database deleted successfully." rescue RestClient::ResourceNotFound # no database found end def retry_request_once(action) second_try ||= false + Tapicero.logger.debug "#{action} #{name}" yield rescue RestClient::Exception => exc if second_try - log_error action + " failed twice due to:", exc + log_error "#{action} #{name} failed twice due to:", exc else - log_error action + " failed due to:", exc + log_error "#{action} #{name} failed due to:", exc sleep 5 second_try = true retry @@ -80,12 +77,12 @@ module Tapicero def log_error(message, exc) Tapicero.logger.warn message if message - Tapicero.logger.warn exc.to_s + Tapicero.logger.warn exc.class.name + ': ' + exc.to_s Tapicero.logger.debug exc.backtrace.join("\n") end def secured? - retry_request_once "Checking security" do + retry_request_once "Checking security of" do CouchRest.get(security_url).keys.any? end end diff --git a/lib/tapicero_daemon.rb b/lib/tapicero_daemon.rb index 67eee88..2a43cae 100644 --- a/lib/tapicero_daemon.rb +++ b/lib/tapicero_daemon.rb @@ -16,6 +16,7 @@ module Tapicero db.create db.secure(config.options[:security]) db.add_design_docs + logger.info "Prepared storage for " + hash['id'] end users.deleted do |hash| -- cgit v1.2.3