Class: Aspera::Log
Overview
Singleton object for logging
Constant Summary collapse
- LOG_TYPES =
Where logs are sent to
%i[stderr stdout syslog].freeze
- @@format =
rubocop:disable Style/ClassVars
:json
Instance Attribute Summary collapse
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#logger_type ⇒ Object
Returns the value of attribute logger_type.
-
#program_name ⇒ Object
writeonly
Sets the attribute program_name.
Class Method Summary collapse
-
.capture_stderr ⇒ Object
Capture the output of $stderr and log it at debug level.
-
.dump(name, object) ⇒ Object
dump object suitable for Log.log.debug.
-
.levels ⇒ Object
levels are :debug,:info,:warn,:error,fatal,:unknown.
-
.log ⇒ Object
get the logger object of singleton.
Instance Method Summary collapse
-
#level ⇒ Object
Get symbol of debug level of underlying logger.
-
#level=(new_level) ⇒ Object
Set log level of underlying logger given symbol level.
Instance Attribute Details
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
88 89 90 |
# File 'lib/aspera/log.rb', line 88 def logger @logger end |
#logger_type ⇒ Object
Returns the value of attribute logger_type.
88 89 90 |
# File 'lib/aspera/log.rb', line 88 def logger_type @logger_type end |
#program_name=(value) ⇒ Object (writeonly)
Sets the attribute program_name
89 90 91 |
# File 'lib/aspera/log.rb', line 89 def program_name=(value) @program_name = value end |
Class Method Details
.capture_stderr ⇒ Object
Capture the output of $stderr and log it at debug level
78 79 80 81 82 83 84 85 |
# File 'lib/aspera/log.rb', line 78 def capture_stderr real_stderr = $stderr $stderr = StringIO.new yield if block_given? log.debug($stderr.string) ensure $stderr = real_stderr end |
.dump(name, object) ⇒ Object
dump object suitable for Log.log.debug
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/aspera/log.rb', line 65 def dump(name, object) result = case @@format when :json JSON.pretty_generate(object) rescue PP.pp(object, +'') when :ruby PP.pp(object, +'') else error_unexpected_value(@@format){'dump format'} end "#{name.to_s.green} (#{@@format})=\n#{result}" end |
.levels ⇒ Object
levels are :debug,:info,:warn,:error,fatal,:unknown
57 |
# File 'lib/aspera/log.rb', line 57 def levels; Logger::Severity.constants.sort{ |a, b| Logger::Severity.const_get(a) <=> Logger::Severity.const_get(b)}.map{ |c| c.downcase.to_sym}; end |
.log ⇒ Object
get the logger object of singleton
60 |
# File 'lib/aspera/log.rb', line 60 def log; instance.logger; end |
Instance Method Details
#level ⇒ Object
Get symbol of debug level of underlying logger
97 98 99 100 101 102 |
# File 'lib/aspera/log.rb', line 97 def level Logger::Severity.constants.each do |name| return name.downcase.to_sym if @logger.level.eql?(Logger::Severity.const_get(name)) end Aspera.error_unexpected_value(@logger.level){'log level'} end |