diff --git a/Gemfile b/Gemfile index d1b00b6..ee3519e 100644 --- a/Gemfile +++ b/Gemfile @@ -22,6 +22,7 @@ gem 'eita-jrails', '>= 0.9.5', :require => 'jrails' gem 'grape', '~> 0.11.0' gem 'grape-entity' gem 'grape-swagger' +gem 'grape_logging' gem 'rack-cors' gem 'rack-contrib' diff --git a/lib/noosfero/api/api.rb b/lib/noosfero/api/api.rb index 5da45c1..fd6db3d 100644 --- a/lib/noosfero/api/api.rb +++ b/lib/noosfero/api/api.rb @@ -6,12 +6,18 @@ module Noosfero class API < Grape::API use Rack::JSONP - before { start_log } + logger = Logger.new(File.join(Rails.root, 'log', "#{ENV['RAILS_ENV'] || 'production'}_api.log")) + logger.formatter = GrapeLogging::Formatters::Default.new + use RequestLogger, { logger: logger } + + rescue_from :all do |e| + logger.error e + end + before { setup_multitenancy } before { detect_stuff_by_domain } - after { end_log } after { set_session_cookie } - + version 'v1' prefix "api" format :json diff --git a/lib/noosfero/api/helpers.rb b/lib/noosfero/api/helpers.rb index 00fbf3d..14ab098 100644 --- a/lib/noosfero/api/helpers.rb +++ b/lib/noosfero/api/helpers.rb @@ -3,11 +3,7 @@ module Noosfero module APIHelpers PRIVATE_TOKEN_PARAM = :private_token ALLOWED_PARAMETERS = ['parent_id', 'from', 'until', 'content_type'] - - def logger - @logger ||= Logger.new(File.join(Rails.root, 'log', "#{ENV['RAILS_ENV']}_api.log")) - end - + def current_user private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token'] || cookies['_noosfero_api_session']).to_s if params @current_user ||= User.find_by_private_token(private_token) @@ -151,13 +147,6 @@ module Noosfero cookies['_noosfero_api_session'] = { value: @current_user.private_token, httponly: true } if @current_user.present? end - def start_log - logger.info "Started #{request.path} #{request.params.except('password')}" - end - def end_log - logger.info "Completed #{request.path}" - end - def setup_multitenancy Noosfero::MultiTenancy.setup!(request.host) end -- libgit2 0.21.2