Module: Tair::Log

Included in:
Client, Connection, Operation
Defined in:
lib/tair/log.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



7
8
9
10
11
12
# File 'lib/tair/log.rb', line 7

def self.included(klass)
  klass.class_eval do
    attr_writer :logger
    attr_writer :logger_colorize
  end
end

Instance Method Details

#colorize(text) ⇒ Object



57
58
59
# File 'lib/tair/log.rb', line 57

def colorize text
  logger_colorize.call(text)
end

#log_bytes(string) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/tair/log.rb', line 22

def log_bytes string
  # 写入字节到文件,方便与其他语言的SDK做对比
  File.open(tair_bytes_log_file, 'w') do |f|
    bytes = string.each_codepoint.to_a
    debug { bytes.map {|b| b.to_s(16) }.join(" ") }
    f.write bytes.join(",\n")
  end
end

#log_time(msg, serverity = ::Logger::INFO, &block) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/tair/log.rb', line 48

def log_time msg, serverity=::Logger::INFO, &block
  t = Time.now
  block.call.tap do |ret|
    elapsed = '%.3f' % ((Time.now - t) * 1000)
    logger.log(serverity) { colorize("(#{elapsed}ms)") << " #{msg}" }
  end
end

#loggerObject



37
38
39
40
41
42
43
44
45
# File 'lib/tair/log.rb', line 37

def logger
  return @logger if defined? @logger
  @logger ||= ::Logger.new(STDOUT).tap do |logger|
    logger.level = ::Logger::INFO
    logger.formatter = proc { |serverity, time, prog, msg |
      colorize("Tair ") << msg.to_s << "\n"
    }
  end
end

#logger_colorizeObject



62
63
64
65
66
# File 'lib/tair/log.rb', line 62

def logger_colorize
  @logger_colorize ||= proc { |t|
    t.to_s.bold
  }
end

#tair_bytes_log_fileObject



32
33
34
# File 'lib/tair/log.rb', line 32

def tair_bytes_log_file
  "log/bytes.log"
end