Module: SmartLogger

Defined in:
lib/smart_logger/rack.rb,
lib/smart_logger.rb,
lib/smart_logger/resque.rb

Overview

Included in Resque jobs to setup log.

Usage:

class Something
  extend SmartLogger::Job
end

Defined Under Namespace

Modules: Job Classes: RackLoggerMarker

Class Method Summary collapse

Class Method Details

.add(name, value) ⇒ Object

Adds extra tags to the log file

Example:

SmartLogger.add(:remote_ip, '#{IP}')


37
38
39
40
# File 'lib/smart_logger.rb', line 37

def self.add(name, value)
  create_watermark if self.water_mark.nil?
  save_param(name, value)
end

.endObject

Mark the end of an action



24
25
26
27
# File 'lib/smart_logger.rb', line 24

def self.end
  create_watermark
  reset_params
end

.format_message(severity, message = nil, progname = nil) ⇒ Object



72
73
74
75
76
77
78
79
# File 'lib/smart_logger.rb', line 72

def self.format_message(severity, message = nil, progname = nil)
  "[%s%s] [%s: %s] %s\n" % [
    SmartLogger::water_mark,
    SmartLogger::params,
    severity,
    Time.zone.now.strftime("%H:%M:%S"),
    (message || progname).to_s.lstrip]
end

.initialize(name = 'InitProcess') ⇒ Object

Initialize smart logger

Example:

SmartLogger.initialize('InitProcess')


67
68
69
70
# File 'lib/smart_logger.rb', line 67

def self.initialize(name = 'InitProcess')
  Rails.configuration.middleware.insert_before Rails::Rack::Logger, SmartLogger::RackLoggerMarker
  SmartLogger.start(name)
end

.paramsObject

Returns a list of parameters for this action

Returns:

  • A string containing name:value pairs



46
47
48
49
50
# File 'lib/smart_logger.rb', line 46

def self.params
  Thread.current[:logger_params].inject('') do |str, val| 
    str << " #{val[0].to_s}:#{val[1]}" 
  end rescue ''
end

.start(action) ⇒ Object

Mark the start of a new action, creating a new water-mark

Example:

SmartLogger.start('Worker 3')


17
18
19
20
# File 'lib/smart_logger.rb', line 17

def self.start(action)
  create_watermark
  save_param(:action, action)
end

.water_markObject

Returns the current water mark

Returns:

  • String representing water mark



56
57
58
# File 'lib/smart_logger.rb', line 56

def self.water_mark
  Thread.current[:logger_mark]
end