class Rack::SlowLog::Logger

Public Class Methods

new(long_request_time, slow_log, one_log_per_request) click to toggle source
# File lib/rack/slow_log/logger.rb, line 5
def initialize(long_request_time, slow_log, one_log_per_request)
  @long_request_time = long_request_time
  @slow_log = slow_log
  @one_log_per_request = one_log_per_request

  @lines = []
end

Public Instance Methods

<<(line)
Alias for: log
log(line) click to toggle source
# File lib/rack/slow_log/logger.rb, line 13
def log(line)
  @lines << [Time.now, line]
end
Also aliased as: <<
request_end!() click to toggle source
# File lib/rack/slow_log/logger.rb, line 28
def request_end!
  @end_time = Time.now
end
request_start!() click to toggle source
# File lib/rack/slow_log/logger.rb, line 24
def request_start!
  @start_time = Time.now
end
save() click to toggle source
# File lib/rack/slow_log/logger.rb, line 18
def save
  if long_request?
    write_log
  end
end

Private Instance Methods

log_file_name() click to toggle source
# File lib/rack/slow_log/logger.rb, line 48
def log_file_name
  if @one_log_per_request
    time_stamp = @start_time.strftime('%Y-%m-%d-%H_%M_%S.%3N')
    "#{@slow_log}_#{time_stamp}"
  else
    @slow_log
  end
end
long_request?() click to toggle source
# File lib/rack/slow_log/logger.rb, line 34
def long_request?
  (@end_time - @start_time) > @long_request_time
end
write_log() click to toggle source
# File lib/rack/slow_log/logger.rb, line 38
def write_log
  log_file = ::File.open(log_file_name, 'a')

  log_file.write("[#{@start_time}] >>>>>>>>>> START <<<<<<<<<<\n")
  @lines.each { |timestamp, line| log_file.write("[#{timestamp}] #{line}\n") }
  log_file.write("[#{@end_time}] >>>>>>>>>> END <<<<<<<<<<\n")

  log_file.close
end