Class: RubyRabbitmqJanus::Tools::Log

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/rrj/tools/log.rb

Overview

Class for wrtting logs.

Constant Summary collapse

LEVELS =

Levels to log

{
  DEBUG: Logger::DEBUG,
  INFO: Logger::INFO,
  WARN: Logger::WARN,
  ERROR: Logger::ERROR,
  FATAL: Logger::FATAL,
  UNKNOWN: Logger::UNKNOWN
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLog

Returns a new instance to Log



24
25
26
27
28
29
30
31
32
# File 'lib/rrj/tools/log.rb', line 24

def initialize
  logs = defined?(Rails) ? logger_rails : logger_develop
  logs.progname = RubyRabbitmqJanus.name
  logs.level = LEVELS[:DEBUG]
  logs.info('### Start gem Rails Rabbit Janus ###')
  @level = logs.level
  @progname = logs.progname
  @logs = ActiveSupport::TaggedLogging.new(logs)
end

Instance Attribute Details

#levelObject

This method smell :reek:Attribute



21
22
23
# File 'lib/rrj/tools/log.rb', line 21

def level
  @level
end

#prognameObject

This method smell :reek:Attribute



21
22
23
# File 'lib/rrj/tools/log.rb', line 21

def progname
  @progname
end

Instance Method Details

#debug(message) ⇒ Object

Write a message in log with a debug level

Parameters:

  • message (String)

    Message writing in debug level in log



66
67
68
# File 'lib/rrj/tools/log.rb', line 66

def debug(message)
  write_tag { @logs.debug(message.light_blue) } if test_level?(Logger::DEBUG)
end

#error(message) ⇒ Object

Write a message in log with a ERROR level

Parameters:

  • message (String)

    Message writing in warning level in log



48
49
50
# File 'lib/rrj/tools/log.rb', line 48

def error(message)
  write_tag { @logs.error(message.orange) } if test_level?(Logger::ERROR)
end

#fatal(message) ⇒ Object

Write a message in log with a FATAL level

Parameters:

  • message (String)

    Message writing in warning level in log



42
43
44
# File 'lib/rrj/tools/log.rb', line 42

def fatal(message)
  write_tag { @logs.fatal(message.red) } if test_level?(Logger::FATAL)
end

#info(message) ⇒ Object

Write a message in log with a info level

Parameters:

  • message (String)

    Message writing in info level in log



60
61
62
# File 'lib/rrj/tools/log.rb', line 60

def info(message)
  write_tag { @logs.info(message.green) } if test_level?(Logger::INFO)
end

#logdevObject

Return device to log is writing



76
77
78
# File 'lib/rrj/tools/log.rb', line 76

def logdev
  @logs.instance_variable_get(:'@logdev').filename
end

#loggerObject

Return instance logger



71
72
73
# File 'lib/rrj/tools/log.rb', line 71

def logger
  @logs
end

#logger_developObject (private)

Define instance logger wiptout rails



88
89
90
91
92
93
94
# File 'lib/rrj/tools/log.rb', line 88

def logger_develop
  log = Logger.new('log/rails-rabbit-janus.log')
  log.formatter = proc do |severity, _datetime, _progname, msg|
    "#{severity[0, 1].upcase}, #{msg}\n"
  end
  log
end

#logger_railsObject (private)

Define instance logger with rails



83
84
85
# File 'lib/rrj/tools/log.rb', line 83

def logger_rails
  Rails.logger
end

#test_level?(this_level) ⇒ Boolean (private)

This method smell :reek:UtilityFunction

Returns:

  • (Boolean)


97
98
99
# File 'lib/rrj/tools/log.rb', line 97

def test_level?(this_level)
  this_level >= Log.instance.level ? true : false
end

#unknown(message) ⇒ Object

Write a message in log with a UNKNOWN level

Parameters:

  • message (String)

    Message writing in warning level in log



36
37
38
# File 'lib/rrj/tools/log.rb', line 36

def unknown(message)
  write_tag { @logs.unknown(message) }
end

#warn(message) ⇒ Object

Write a message in log with a warn level

Parameters:

  • message (String)

    Message writing in warning level in log



54
55
56
# File 'lib/rrj/tools/log.rb', line 54

def warn(message)
  write_tag { @logs.warn(message.yellow) } if test_level?(Logger::WARN)
end

#write_tagObject (private)

Write a log with an tag



102
103
104
# File 'lib/rrj/tools/log.rb', line 102

def write_tag
  @logs.tagged(@logs.progname) { yield }
end