Class: PuppetForgeServer::Logger
- Inherits:
-
Object
- Object
- PuppetForgeServer::Logger
show all
- Defined in:
- lib/puppet_forge_server/logger.rb
Constant Summary
collapse
- @@DEFAULT_LOG_LEVEL =
::Logger::INFO
- @@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_DESTINATION]) ⇒ Logger
Returns a new instance of Logger.
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/puppet_forge_server/logger.rb', line 28
def initialize(destinations = [@@DEFAULT_DESTINATION])
@loggers = [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.level = @@DEFAULT_LOG_LEVEL
logger
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/puppet_forge_server/logger.rb', line 40
def method_missing (method_name, *args, &block)
method_name = case method_name
when :write, :puts
'<<'
when :flush
''
else
method_name
end
if args.size > 0
@loggers.each { |logger| logger.send(method_name, args.first) }
else
@loggers.collect { |logger| logger.send(method_name) }
end
end
|
Class Method Details
.get(type = :server) ⇒ Object
67
68
69
70
|
# File 'lib/puppet_forge_server/logger.rb', line 67
def get(type = :server)
set unless @static_loggers[type]
@static_loggers[type]
end
|
.set(loggers = {}) ⇒ Object
72
73
74
75
76
77
|
# File 'lib/puppet_forge_server/logger.rb', line 72
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
|
Instance Method Details
#flush ⇒ Object
62
63
64
|
# File 'lib/puppet_forge_server/logger.rb', line 62
def flush
end
|
#respond_to?(method_name, include_private = false) ⇒ Boolean
58
59
60
|
# File 'lib/puppet_forge_server/logger.rb', line 58
def respond_to?(method_name, include_private = false)
@loggers.each { |logger| return false unless (logger.respond_to?(method_name) || %w(write puts flush).include?(method_name.to_s)) }
end
|