Module: RubyRabbitmqJanus::Tools::Logger

Defined in:
lib/rrj/tools/gem/log.rb

Overview

# Manage log in this gem

Create module for managing logger in many level. In Thread process. In rails apps (final app use this gem).

Prepare different output : STDOUT RemoteSyslogger (for papertrail) File

Author:

Since:

  • 2.6.0

Class Method Summary collapse

Class Method Details

.createObject

Since:

  • 2.6.0



29
30
31
32
33
34
35
36
# File 'lib/rrj/tools/gem/log.rb', line 29

def self.create
  @config = RubyRabbitmqJanus::Tools::Config.instance

  @log = initialize_logger
  @log.level = @config.log_level

  @log
end

.initialize_loggerObject

Since:

  • 2.6.0



38
39
40
41
42
43
44
45
46
# File 'lib/rrj/tools/gem/log.rb', line 38

def self.initialize_logger
  case @config.log_type
  when :stdout  then logger_stdout
  when :file    then logger_file
  when :remote  then logger_remote
  else
    logger_stdout
  end
end

.logger_fileObject

Since:

  • 2.6.0



52
53
54
# File 'lib/rrj/tools/gem/log.rb', line 52

def self.logger_file
  ::Logger.new(@config.log_option || 'log/ruby-rabbitmq-janus.log')
end

.logger_remoteObject

Since:

  • 2.6.0



56
57
58
59
60
61
62
63
# File 'lib/rrj/tools/gem/log.rb', line 56

def self.logger_remote
  require 'remote_syslog_logger'

  RemoteSyslogLogger.new(remote_url,
                         remote_port,
                         program: remote_program,
                         local_hostname: remote_hostname)
end

.logger_stdoutObject

Since:

  • 2.6.0



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

def self.logger_stdout
  ::Logger.new(STDOUT)
end

.remote_hostnameObject

Since:

  • 2.6.0



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

def self.remote_hostname
  @config.log_option.split(':').last
end

.remote_portObject

Since:

  • 2.6.0



69
70
71
# File 'lib/rrj/tools/gem/log.rb', line 69

def self.remote_port
  @config.log_option.split('@').first.split(':').last
end

.remote_programObject

Since:

  • 2.6.0



73
74
75
# File 'lib/rrj/tools/gem/log.rb', line 73

def self.remote_program
  @config.log_option.split('@').last.split(':').first
end

.remote_urlObject

Since:

  • 2.6.0



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

def self.remote_url
  @config.log_option.split(':').first
end

.startObject

Since:

  • 2.6.0



23
24
25
26
27
# File 'lib/rrj/tools/gem/log.rb', line 23

def self.start
  Log.info '### Start bin Ruby Rabbit Janus ###'
  Log.info "RRJ Version : #{RubyRabbitmqJanus::VERSION}"
  Log.info "\r\n#{RubyRabbitmqJanus::BANNER}"
end