Class: RubyRabbitmqJanus::Tools::Log
- Inherits:
-
Object
- Object
- RubyRabbitmqJanus::Tools::Log
- Includes:
- Singleton
- Defined in:
- lib/rrj/tools/gem/log.rb
Overview
# Manage log in this gem
Singleton object for manipulate logs in this gem
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
- SENSITIVES =
Sensitive data
i[admin_secret apisecret].freeze
Instance Attribute Summary collapse
-
#level ⇒ Fixnum
readonly
Return a number to log level.
Instance Method Summary collapse
-
#debug(message) ⇒ Object
Write a message in log with a
DEBUGlevel. -
#error(message) ⇒ Object
Write a message in log with a
ERRORlevel. -
#fatal(message) ⇒ Object
Write a message in log with a
FATALlevel. -
#info(message) ⇒ Object
Write a message in log with a
INFOlevel. -
#initialize ⇒ Log
constructor
Returns a new instance to Log and use
Tagelement for each line writing in log with name to gem. -
#logdev ⇒ String
Name of file to logger used.
-
#logger ⇒ RubyRabbitmqJanus::Tools::Log
The instance to logger.
-
#save_level(gem_level) ⇒ Object
Save log level used in this gem.
-
#unknown(message) ⇒ Object
Write a message in log with a
UNKNOWNlevel. -
#warn(message) ⇒ Object
Write a message in log with a
WARNlevel.
Constructor Details
#initialize ⇒ Log
Returns a new instance to Log and use Tag element for each line writing in log with name to gem.
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/rrj/tools/gem/log.rb', line 35 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) rescue raise Errors::Tools::Log::Initialize end |
Instance Attribute Details
#level ⇒ Fixnum (readonly)
Return a number to log level.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/rrj/tools/gem/log.rb', line 13 class Log include Singleton # Levels to log LEVELS = { DEBUG: Logger::DEBUG, INFO: Logger::INFO, WARN: Logger::WARN, ERROR: Logger::ERROR, FATAL: Logger::FATAL, UNKNOWN: Logger::UNKNOWN }.freeze # Sensitive data SENSITIVES = i[admin_secret apisecret].freeze attr_reader :level # Returns a new instance to Log and use `Tag` element for each line # writing in log with name to gem. # # @see http://api.rubyonrails.org/classes/ActiveSupport/TaggedLogging.html 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) rescue raise Errors::Tools::Log::Initialize end # Write a message in log with a `UNKNOWN` level # # @param message [String] Message writing in warning level in log def unknown() write_tag { @logs.unknown(filter()) } rescue raise Errors::Tools::Log::Unknow end # Write a message in log with a `FATAL` level # # @param message [String] Message writing in warning level in log def fatal() write_tag { @logs.fatal(filter()) } if test_level?(Logger::FATAL) rescue raise Errors::Tools::Log::Fatal end # Write a message in log with a `ERROR` level # # @param message [String] Message writing in warning level in log def error() write_tag { @logs.error(filter()) } if test_level?(Logger::ERROR) rescue raise Errors::Tools::Log::Error end # Write a message in log with a `WARN` level # @param message [String] Message writing in warning level in log def warn() write_tag { @logs.warn(filter()) } if test_level?(Logger::WARN) rescue raise Errors::Tools::Log::Warn end # Write a message in log with a `INFO` level # # @param message [String] Message writing in info level in log def info() write_tag { @logs.info(filter()) } if test_level?(Logger::INFO) rescue raise Errors::Tools::Log::Info end # Write a message in log with a `DEBUG` level # # @param message [String] Message writing in debug level in log def debug() write_tag { @logs.debug(filter()) } if test_level?(Logger::DEBUG) rescue raise Errors::Tools::Log::Debug end # @return [RubyRabbitmqJanus::Tools::Log] the instance to logger def logger @logs rescue raise Errors::Tools::Log::Logger end # @return [String] name of file to logger used def logdev @logs.instance_variable_get(:'@logdev').filename rescue raise Errors::Tools::Log::Logdev end # Save log level used in this gem # # @param [Symbol] gem_level Level used for log in this gem def save_level(gem_level) @level = LEVELS[gem_level] rescue raise Errors::Tools::Log::SaveLevel end private def logger_rails defined?(RSpec) ? logger_develop : Rails.logger end def logger_develop log = Logger.new('log/ruby-rabbitmq-janus.log') log.formatter = proc do |severity, _datetime, _progname, msg| "#{severity[0, 1].upcase}, #{msg}\n" end log end def test_level?(this_level) this_level >= Log.instance.level ? true : false end def write_tag @logs.tagged(@logs.progname) { yield } end # @todo fix replace def filter_sensitive_data(log) msg = log SENSITIVES.each do |word| msg = log.gsub(/\"#{word}\".*\".*\"/, "\"#{word}\":\"[FILTERED]\"") \ if log.include?(word.to_s) end msg end alias filter filter_sensitive_data end |
Instance Method Details
#debug(message) ⇒ Object
Write a message in log with a DEBUG level
94 95 96 97 98 |
# File 'lib/rrj/tools/gem/log.rb', line 94 def debug() write_tag { @logs.debug(filter()) } if test_level?(Logger::DEBUG) rescue raise Errors::Tools::Log::Debug end |
#error(message) ⇒ Object
Write a message in log with a ERROR level
68 69 70 71 72 |
# File 'lib/rrj/tools/gem/log.rb', line 68 def error() write_tag { @logs.error(filter()) } if test_level?(Logger::ERROR) rescue raise Errors::Tools::Log::Error end |
#fatal(message) ⇒ Object
Write a message in log with a FATAL level
59 60 61 62 63 |
# File 'lib/rrj/tools/gem/log.rb', line 59 def fatal() write_tag { @logs.fatal(filter()) } if test_level?(Logger::FATAL) rescue raise Errors::Tools::Log::Fatal end |
#info(message) ⇒ Object
Write a message in log with a INFO level
85 86 87 88 89 |
# File 'lib/rrj/tools/gem/log.rb', line 85 def info() write_tag { @logs.info(filter()) } if test_level?(Logger::INFO) rescue raise Errors::Tools::Log::Info end |
#logdev ⇒ String
Returns name of file to logger used.
108 109 110 111 112 |
# File 'lib/rrj/tools/gem/log.rb', line 108 def logdev @logs.instance_variable_get(:'@logdev').filename rescue raise Errors::Tools::Log::Logdev end |
#logger ⇒ RubyRabbitmqJanus::Tools::Log
Returns the instance to logger.
101 102 103 104 105 |
# File 'lib/rrj/tools/gem/log.rb', line 101 def logger @logs rescue raise Errors::Tools::Log::Logger end |
#save_level(gem_level) ⇒ Object
Save log level used in this gem
117 118 119 120 121 |
# File 'lib/rrj/tools/gem/log.rb', line 117 def save_level(gem_level) @level = LEVELS[gem_level] rescue raise Errors::Tools::Log::SaveLevel end |
#unknown(message) ⇒ Object
Write a message in log with a UNKNOWN level
50 51 52 53 54 |
# File 'lib/rrj/tools/gem/log.rb', line 50 def unknown() write_tag { @logs.unknown(filter()) } rescue raise Errors::Tools::Log::Unknow end |
#warn(message) ⇒ Object
Write a message in log with a WARN level
76 77 78 79 80 |
# File 'lib/rrj/tools/gem/log.rb', line 76 def warn() write_tag { @logs.warn(filter()) } if test_level?(Logger::WARN) rescue raise Errors::Tools::Log::Warn end |