Class: PuppetForgeServer::Logger
- Inherits:
-
Object
- Object
- PuppetForgeServer::Logger
show all
- Defined in:
- lib/puppet_forge_server/logger.rb
Constant Summary
collapse
- @@DEFAULT_DESTINATION =
STDERR
- @@DEFAULT_DATETIME_FORMAT =
'%Y-%m-%d %H:%M:%S'
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(destinations = [@@DEFAULT_LOGGER]) ⇒ Logger
Returns a new instance of Logger.
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/puppet_forge_server/logger.rb', line 26
def initialize(destinations = [@@DEFAULT_LOGGER])
@loggers = Array.new(destinations).flatten.map do |dest|
logger = ::Logger.new(dest)
logger.formatter = proc do |severity, datetime, progname, msg|
datetime = datetime.strftime @@DEFAULT_DATETIME_FORMAT
"[#{datetime}] #{severity} #{msg}\n"
end
logger
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
37
38
39
40
|
# File 'lib/puppet_forge_server/logger.rb', line 37
def method_missing (method_name, *args, &block)
method_name = method_name == :write ? :'<<' : method_name
@loggers.each { |logger| logger.send(method_name, args.first) }
end
|
Class Method Details
.get(type = :server) ⇒ Object
43
44
45
46
|
# File 'lib/puppet_forge_server/logger.rb', line 43
def get(type = :server)
set unless @static_loggers[type]
@static_loggers[type]
end
|
.set(loggers = {}) ⇒ Object
48
49
50
51
52
53
|
# File 'lib/puppet_forge_server/logger.rb', line 48
def set(loggers= {})
loggers = {:server => [@@DEFAULT_DESTINATION], :access => [@@DEFAULT_DESTINATION]}.merge(loggers)
loggers.each do |type, destinations|
@static_loggers[type] = PuppetForgeServer::Logger.new(destinations)
end
end
|