Module: Binnacle
- Extended by:
- Forwardable
- Defined in:
- lib/binnacle.rb,
lib/binnacle/client.rb,
lib/binnacle/errors.rb,
lib/binnacle/version.rb,
lib/binnacle/resource.rb,
lib/binnacle/connection.rb,
lib/binnacle/trap/railtie.rb,
lib/binnacle/configuration.rb,
lib/binnacle/trap/backtrace.rb,
lib/binnacle/logging/logging.rb,
lib/binnacle/resources/event.rb,
lib/binnacle/trap/middleware.rb,
lib/binnacle/logging/formatter.rb,
lib/binnacle/trap/exception_event.rb,
lib/binnacle/http_logging/http_logger.rb,
lib/binnacle/logging/request_log_subscriber.rb
Defined Under Namespace
Modules: Commands, HttpLogger, Logging, Trap
Classes: Client, Configuration, ConfigurationError, Connection, Engine, Error, Event, Resource
Constant Summary
collapse
- LOCK =
Mutex.new
- VERSION =
"0.5.0"
Class Method Summary
collapse
Class Method Details
.binnacle_logger ⇒ Object
51
52
53
|
# File 'lib/binnacle.rb', line 51
def self.binnacle_logger
@internal_logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
end
|
.binnacle_logger=(logger) ⇒ Object
55
56
57
|
# File 'lib/binnacle.rb', line 55
def self.binnacle_logger=(logger)
@internal_logger = logger
end
|
.client ⇒ Object
94
95
96
|
# File 'lib/binnacle.rb', line 94
def self.client
@client
end
|
.configuration ⇒ Object
34
35
36
|
# File 'lib/binnacle.rb', line 34
def self.configuration
@configuration || LOCK.synchronize { @configuration ||= Binnacle::Configuration.new }
end
|
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/binnacle.rb', line 38
def self.configure(options = {})
set_options(options)
yield(configuration) if block_given?
configuration.prepare!
if configuration.ready?
create_client
setup_logger
end
end
|
.create_client ⇒ Object
65
66
67
68
69
70
71
72
|
# File 'lib/binnacle.rb', line 65
def self.create_client
binnacle_logger.info "Instantiating Binnacle Client..."
begin
@client = Client.new()
rescue Faraday::ConnectionFailed => fcf
binnacle_logger.error "Failed to connect to Binnacle. Check your settings!"
end
end
|
.logger ⇒ Object
90
91
92
|
# File 'lib/binnacle.rb', line 90
def self.logger
@logger
end
|
.set_options(options) ⇒ Object
59
60
61
62
63
|
# File 'lib/binnacle.rb', line 59
def self.set_options(options)
options.each do |k,v|
configuration.send("#{k}=", v) rescue nil if configuration.respond_to?("#{k}=")
end
end
|
.setup_logger ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/binnacle.rb', line 74
def self.setup_logger
if @client && configuration.can_setup_logger?
if defined?(Rails)
binnacle_logger.info "Configuring Binnacle Rails logger..."
@logger = Logging.new(@client, configuration.logging_channel)
@logger.level = Logger::INFO
if configuration.rails_verbose_logging?
Rails.logger.extend(ActiveSupport::Logger.broadcast(@logger))
end
Rack::Timeout.unregister_state_change_observer(:logger) if Rails.env.development?
else
binnacle_logger.info "Skipping Binnacle Rails logger configuration..."
end
end
end
|