Module: RubyRabbitmqJanus::Tools::Logger

Defined in:
lib/rrj/tools/gem/logger.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/logger.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
# File 'lib/rrj/tools/gem/logger.rb', line 42

def self.initialize_logger
  case @config.log_type
  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



58
59
60
# File 'lib/rrj/tools/gem/logger.rb', line 58

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



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

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



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

def self.logger_stdout
  ::Logger.new($stdout)
end

.remote_hostnameObject

Read url for PaperTrail and split for host

Since:

  • 2.6.0



88
89
90
# File 'lib/rrj/tools/gem/logger.rb', line 88

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

.remote_portObject

Read url for PaperTrail and split for port

Since:

  • 2.6.0



78
79
80
# File 'lib/rrj/tools/gem/logger.rb', line 78

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



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

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



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

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/logger.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