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

Configure logger used by RRJ

Since:

  • 2.6.0



32
33
34
35
36
37
38
39
# File 'lib/rrj/tools/gem/log.rb', line 32

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

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

  @log
end

.initialize_loggerObject

Choose type logger used in application instance

Since:

  • 2.6.0



42
43
44
45
46
47
48
49
50
# File 'lib/rrj/tools/gem/log.rb', line 42

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

Configure logger with output file default : ‘log/ruby-rabbitmq-janus.log`

Since:

  • 2.6.0



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

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

.logger_remoteObject

Configure logger with output PaperTrail service

Since:

  • 2.6.0



64
65
66
67
68
69
70
71
# File 'lib/rrj/tools/gem/log.rb', line 64

def self.logger_remote
  require 'remote_syslog_logger'

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

.logger_stdoutObject

Configure logger with output SDTOUT

Since:

  • 2.6.0



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

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

.remote_hostnameObject

Read url for PaperTrail and split for host

Since:

  • 2.6.0



89
90
91
# File 'lib/rrj/tools/gem/log.rb', line 89

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

.remote_portObject

Read url for PaperTrail and split for port

Since:

  • 2.6.0



79
80
81
# File 'lib/rrj/tools/gem/log.rb', line 79

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

.remote_programObject

Read url for PaperTrail and split for name app

Since:

  • 2.6.0



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

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

.remote_urlObject

Read url for PaperTail and split for endpoint

Since:

  • 2.6.0



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

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

.startObject

Write basic information about this gem

Since:

  • 2.6.0



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

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