Class: Aspera::Log

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/aspera/log.rb

Overview

Singleton object for logging

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



14
15
16
# File 'lib/aspera/log.rb', line 14

def logger
  @logger
end

#logger_typeObject

Returns the value of attribute logger_type.



15
16
17
# File 'lib/aspera/log.rb', line 15

def logger_type
  @logger_type
end

#program_name=(value) ⇒ Object (writeonly)

Sets the attribute program_name

Parameters:

  • value

    the value to set the attribute program_name to.



76
77
78
# File 'lib/aspera/log.rb', line 76

def program_name=(value)
  @program_name = value
end

Class Method Details

.dump(name, object, format = :json) ⇒ Object

dump object in debug mode

Parameters:

  • name

    string or symbol

  • format (defaults to: :json)

    either pp or json format



28
29
30
31
32
33
34
35
# File 'lib/aspera/log.rb', line 28

def self.dump(name,object,format=:json)
  result=case format
  when :ruby;PP.pp(object,'')
  when :json;JSON.pretty_generate(object) rescue PP.pp(object,'')
  else raise "wrong parameter, expect pp or json"
  end
  self.log.debug("#{name.to_s.green} (#{format})=\n#{result}")
end

.levelsObject

levels are :debug,:info,:warn,:error,fatal,:unknown



17
# File 'lib/aspera/log.rb', line 17

def self.levels; Logger::Severity.constants.map{|c| c.downcase.to_sym};end

.logObject

get the logger object of singleton



23
# File 'lib/aspera/log.rb', line 23

def self.log; self.instance.logger; end

.logtypesObject

where logs are sent to



20
# File 'lib/aspera/log.rb', line 20

def self.logtypes; [:stderr,:stdout,:syslog];end

Instance Method Details

#levelObject

get symbol of debug level of underlying logger



43
44
45
46
47
48
# File 'lib/aspera/log.rb', line 43

def level
  Logger::Severity.constants.each do |name|
    return name.downcase.to_sym if @logger.level.eql?(Logger::Severity.const_get(name))
  end
  raise "error"
end

#level=(new_level) ⇒ Object

set log level of underlying logger given symbol level



38
39
40
# File 'lib/aspera/log.rb', line 38

def level=(new_level)
  @logger.level=Logger::Severity.const_get(new_level.to_sym.upcase)
end