module RubyRabbitmqJanus::Tools::Logger

@author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv> @since 2.6.0

# 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

Public Class Methods

create() click to toggle source

Configure logger used by RRJ

# 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_logger() click to toggle source

Choose type logger used in application instance

# 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_file() click to toggle source

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

# 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_remote() click to toggle source

Configure logger with output PaperTrail service

# 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_stdout() click to toggle source

Configure logger with output SDTOUT

# File lib/rrj/tools/gem/logger.rb, line 52
def self.logger_stdout
  ::Logger.new($stdout)
end
remote_hostname() click to toggle source

Read url for PaperTrail and split for host

# File lib/rrj/tools/gem/logger.rb, line 88
def self.remote_hostname
  @config.log_option.split(':').last
end
remote_port() click to toggle source

Read url for PaperTrail and split for port

# File lib/rrj/tools/gem/logger.rb, line 78
def self.remote_port
  @config.log_option.split('@').first.split(':').last
end
remote_program() click to toggle source

Read url for PaperTrail and split for name app

# File lib/rrj/tools/gem/logger.rb, line 83
def self.remote_program
  @config.log_option.split('@').last.split(':').first
end
remote_url() click to toggle source

Read url for PaperTail and split for endpoint

# File lib/rrj/tools/gem/logger.rb, line 73
def self.remote_url
  @config.log_option.split(':').first
end
start() click to toggle source

Write basic information about this gem

# 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