Module: TreasureData::Logger::RailsAgent
- Defined in:
- lib/td/logger.rb
Defined Under Namespace
Modules: ControllerLogger
Classes: Middleware
Constant Summary
collapse
- CONFIG_SAMPLE =
<<EOF
defaults: &defaults
apikey: "YOUR_API_KEY"
database: myapp
table: access
test:
<<: *defaults
development:
<<: *defaults
production:
<<: *defaults
EOF
- CONFIG_PATH =
'config/treasure_data.yml'
Class Method Summary
collapse
Class Method Details
.init(rails) ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/td/logger.rb', line 72
def self.init(rails)
c = read_config(rails)
return unless c
require 'fluent/logger'
if c.agent_mode?
Fluent::Logger::FluentLogger.open(c.tag, c.agent_host, c.agent_port)
else
require 'td/logger/tdlog'
TreasureDataLogger.open(c.apikey, c.database, c.auto_create_table)
end
rails.middleware.use Middleware
ActionController::Base.class_eval do
include ::TreasureData::Logger::RailsAgent::ControllerLogger
end
end
|
.read_config(rails) ⇒ Object
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/td/logger.rb', line 90
def self.read_config(rails)
logger = Rails.logger || ::Logger.new(STDOUT)
begin
yaml = YAML.load_file("#{RAILS_ROOT}/#{CONFIG_PATH}")
rescue
logger.warn "Can't load #{CONFIG_PATH} file."
logger.warn " #{$!}"
logger.warn "Put the following file:"
logger.warn sample
return
end
conf = yaml[RAILS_ENV]
unless conf
logger.warn "#{CONFIG_PATH} doesn't include setting for current environment (#{RAILS_ENV})."
logger.warn "Disabling Treasure Data logger."
return
end
begin
return Config.new(conf)
rescue
logger.warn "#{CONFIG_PATH}: #{$!}."
logger.warn "Disabling Treasure Data logger."
return
end
end
|