Class: Counters::File
- Inherits:
-
Base
- Object
- Base
- Counters::File
show all
- Defined in:
- lib/counters/file.rb
Instance Attribute Summary
Attributes inherited from Base
#namespace
Instance Method Summary
collapse
Methods inherited from Base
#hit, #latency, #magnitude, #ping
Constructor Details
#initialize(path_or_io_or_logger, options = {}) ⇒ File
Returns a new instance of File.
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/counters/file.rb', line 5
def initialize(path_or_io_or_logger, options={})
super(options)
@logger = if path_or_io_or_logger.kind_of?(Logger) || path_or_io_or_logger.respond_to?(:add) then
path_or_io_or_logger
elsif path_or_io_or_logger.respond_to?(:to_str) then
raise ArgumentError, "Counters::File expects a path with a non-empty name (or a Logger, IO instance); received: #{path_or_io_or_logger.inspect}" if path_or_io_or_logger.to_str.empty?
logger = Logger.new(path_or_io_or_logger)
logger.formatter = lambda {|severity, datetime, progname, msg| "#{datetime.strftime("%Y-%m-%dT%H:%M:%S.%N")} - #{msg}\n"}
logger
elsif path_or_io_or_logger.respond_to?(:<<) then
logger = Logger.new(path_or_io_or_logger)
logger.formatter = lambda {|severity, datetime, progname, msg| "#{datetime.strftime("%Y-%m-%dT%H:%M:%S.%N")} - #{msg}\n"}
logger
else
raise ArgumentError, "Counters::File expects an object which is either a Logger or respond to #<<, received a #{path_or_io_or_logger.class}"
end
end
|
Instance Method Details
#record_hit(key) ⇒ Object
30
31
32
|
# File 'lib/counters/file.rb', line 30
def record_hit(key)
@logger.info "hit: #{key}"
end
|
#record_latency(key, time_in_seconds = nil) ⇒ Object
38
39
40
|
# File 'lib/counters/file.rb', line 38
def record_latency(key, time_in_seconds=nil)
@logger.info "latency: #{key} #{time_in_seconds}s"
end
|
#record_magnitude(key, magnitude) ⇒ Object
34
35
36
|
# File 'lib/counters/file.rb', line 34
def record_magnitude(key, magnitude)
@logger.info "magnitude: #{key} #{magnitude}"
end
|
#record_ping(key) ⇒ Object
42
43
44
|
# File 'lib/counters/file.rb', line 42
def record_ping(key)
@logger.info "ping: #{key}"
end
|