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'