lib/appsignal.rb in appsignal-0.6.7 vs lib/appsignal.rb in appsignal-0.7.0.alpha.1

- old
+ new

@@ -1,16 +1,29 @@ -begin - require "rails" unless defined?(Rails) -rescue - raise 'This appsignal gem only works with rails' -end +require 'logger' +require 'rack' +require 'thread_safe' +require 'active_support/json' module Appsignal class << self - attr_accessor :subscriber + attr_accessor :config, :logger, :agent attr_reader :in_memory_log + def start + if config + if config[:debug] + logger.level = Logger::DEBUG + else + logger.level = Logger::INFO + end + logger.info("Starting appsignal-#{Appsignal::VERSION}") + @agent = Appsignal::Agent.new + else + logger.error("Can't start, no config loaded") + end + end + # Convenience method for adding a transaction to the queue. This queue is # managed and is periodically pushed to Appsignal. # # @return [ true ] True. # @@ -49,14 +62,10 @@ def transactions @transactions ||= {} end - def agent - @agent ||= Appsignal::Agent.new - end - def logger @in_memory_log = StringIO.new unless @in_memory_log @logger ||= Logger.new(@in_memory_log).tap do |l| l.level = Logger::INFO l.formatter = Logger::Formatter.new @@ -69,42 +78,38 @@ def json ActiveSupport::JSON end - def logger=(l) - @logger = l - end - - def config - @config ||= Appsignal::Config.new(Rails.root, Rails.env).load - end - def post_processing_middleware - @post_processing_chain ||= PostProcessor.default_middleware + @post_processing_chain ||= Appsignal::Aggregator::PostProcessor.default_middleware yield @post_processing_chain if block_given? @post_processing_chain end def active? config && config[:active] == true end def is_ignored_exception?(exception) - Array.wrap(Appsignal.config[:ignore_exceptions]). - include?(exception.class.name) + Appsignal.config[:ignore_exceptions].include?(exception.class.name) end end end require 'appsignal/agent' require 'appsignal/aggregator' +require 'appsignal/aggregator/post_processor' +require 'appsignal/aggregator/middleware' require 'appsignal/auth_check' require 'appsignal/config' -require 'appsignal/integrations/passenger' -require 'appsignal/listener' require 'appsignal/marker' -require 'appsignal/middleware' -require 'appsignal/railtie' +require 'appsignal/rack/listener' +require 'appsignal/rack/instrumentation' require 'appsignal/transaction' +require 'appsignal/transaction/formatter' +require 'appsignal/transaction/params_sanitizer' require 'appsignal/transmitter' require 'appsignal/version' + +require 'appsignal/integrations/passenger' +require 'appsignal/integrations/rails'