Module: Spider::Logger
Overview
Utility to consolidate many loggers into one. Can be used as a simple Logger, and will pass log messages to each of its child.
Defined Under Namespace
Classes: Formatter, LogDevice, Logger
Class Method Summary
collapse
-
.add(dest, logger, levels = {}) ⇒ Object
-
.close(dest) ⇒ Object
-
.close_all ⇒ Object
-
.datetime_format ⇒ Object
-
.datetime_format=(datetime_format) ⇒ Object
-
.debug(*args, &proc) ⇒ Object
-
.debug? ⇒ Boolean
-
.enquire_loggers(method) ⇒ Object
-
.error(*args, &proc) ⇒ Object
-
.error? ⇒ Boolean
-
.fatal(*args, &proc) ⇒ Object
-
.fatal? ⇒ Boolean
-
.info(*args, &proc) ⇒ Object
-
.info? ⇒ Boolean
-
.method_missing(method, *args, &proc) ⇒ Object
-
.open(dest, level = :WARN) ⇒ Object
-
.reopen(dest, level = :WARN) ⇒ Object
Closes and reopens a logger.
-
.send_to_loggers(action, *args, &proc) ⇒ Object
Sends a method to all loggers.
-
.unknown(*args, &proc) ⇒ Object
-
.warn(*args, &proc) ⇒ Object
-
.warn? ⇒ Boolean
Instance Method Summary
collapse
Class Method Details
.add(dest, logger, levels = {}) ⇒ Object
32
33
34
|
# File 'lib/spiderfw/utils/logger.rb', line 32
def add(dest, logger, levels={})
@loggers[dest] = logger
end
|
.close(dest) ⇒ Object
37
38
39
40
|
# File 'lib/spiderfw/utils/logger.rb', line 37
def close(dest)
@loggers.delete(dest)
end
|
.close_all ⇒ Object
43
44
45
|
# File 'lib/spiderfw/utils/logger.rb', line 43
def close_all
@loggers = {}
end
|
112
113
114
115
116
|
# File 'lib/spiderfw/utils/logger.rb', line 112
def datetime_format
@loggers.each do |d, l|
return l.datetime_format
end
end
|
118
119
120
121
122
|
# File 'lib/spiderfw/utils/logger.rb', line 118
def datetime_format=(datetime_format)
@loggers.each do |d, l|
l.datetime_format=(datetime_format)
end
end
|
.debug(*args, &proc) ⇒ Object
71
72
73
|
# File 'lib/spiderfw/utils/logger.rb', line 71
def debug(*args, &proc)
send_to_loggers(:debug, *args, &proc)
end
|
.debug? ⇒ Boolean
75
76
77
|
# File 'lib/spiderfw/utils/logger.rb', line 75
def debug?
enquire_loggers(:debug?)
end
|
.enquire_loggers(method) ⇒ Object
66
67
68
69
|
# File 'lib/spiderfw/utils/logger.rb', line 66
def enquire_loggers(method)
@loggers.each{ |dest, l| return true if l.send(method) }
return false
end
|
.error(*args, &proc) ⇒ Object
96
97
98
|
# File 'lib/spiderfw/utils/logger.rb', line 96
def error(*args, &proc)
send_to_loggers(:error, *args, &proc)
end
|
.error? ⇒ Boolean
100
101
102
|
# File 'lib/spiderfw/utils/logger.rb', line 100
def error?
enquire_loggers(:error?)
end
|
.fatal(*args, &proc) ⇒ Object
104
105
106
|
# File 'lib/spiderfw/utils/logger.rb', line 104
def fatal(*args, &proc)
send_to_loggers(:fatal, *args, &proc)
end
|
.fatal? ⇒ Boolean
108
109
110
|
# File 'lib/spiderfw/utils/logger.rb', line 108
def fatal?
enquire_loggers(:fatal?)
end
|
.info(*args, &proc) ⇒ Object
79
80
81
|
# File 'lib/spiderfw/utils/logger.rb', line 79
def info(*args, &proc)
send_to_loggers(:info, *args, &proc)
end
|
.info? ⇒ Boolean
83
84
85
|
# File 'lib/spiderfw/utils/logger.rb', line 83
def info?
enquire_loggers(:info?)
end
|
.method_missing(method, *args, &proc) ⇒ Object
128
129
130
|
# File 'lib/spiderfw/utils/logger.rb', line 128
def method_missing(method, *args, &proc)
send_to_loggers(method, *args, &proc)
end
|
.open(dest, level = :WARN) ⇒ Object
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/spiderfw/utils/logger.rb', line 21
def open(dest, level= :WARN)
begin
logger = Spider::Logger::Logger.new(dest, Spider.conf.get('log.rotate.age'), Spider.conf.get('log.rotate.size'))
logger.formatter = Spider::Logger::Formatter.new
logger.level = ::Logger.const_get(level)
add(dest, logger)
rescue => exc
STDERR << "Can't open logging to #{dest}: #{exc}\n"
end
end
|
.reopen(dest, level = :WARN) ⇒ Object
Closes and reopens a logger.
48
49
50
51
52
|
# File 'lib/spiderfw/utils/logger.rb', line 48
def reopen(dest, level= :WARN)
raise RuntimeError, "No open logger for #{dest}" unless @loggers && @loggers[dest]
@loggers.delete(dest)
self.open(dest, level)
end
|
.send_to_loggers(action, *args, &proc) ⇒ Object
Sends a method to all loggers.
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/spiderfw/utils/logger.rb', line 55
def send_to_loggers(action, *args, &proc)
return if $SAFE > 1
return unless @loggers
@loggers.each do |dest, logger|
begin
logger.send(action, *args, &proc)
rescue => exc
end
end
end
|
.unknown(*args, &proc) ⇒ Object
124
125
126
|
# File 'lib/spiderfw/utils/logger.rb', line 124
def unknown(*args, &proc)
send_to_loggers(:unknown, *args, &proc)
end
|
.warn(*args, &proc) ⇒ Object
87
88
89
|
# File 'lib/spiderfw/utils/logger.rb', line 87
def warn(*args, &proc)
send_to_loggers(:warn, *args, &proc)
end
|
.warn? ⇒ Boolean
91
92
93
|
# File 'lib/spiderfw/utils/logger.rb', line 91
def warn?
enquire_loggers(:warn?)
end
|
Instance Method Details
#debug(*args, &proc) ⇒ Object
134
135
136
|
# File 'lib/spiderfw/utils/logger.rb', line 134
def debug(*args, &proc)
Spider::Logger.debug(*args, &proc)
end
|
#debug? ⇒ Boolean
158
159
160
|
# File 'lib/spiderfw/utils/logger.rb', line 158
def debug?
Spider::Logger.debug?
end
|
#error(*args, &proc) ⇒ Object
146
147
148
|
# File 'lib/spiderfw/utils/logger.rb', line 146
def error(*args, &proc)
Spider::Logger.error(*args, &proc)
end
|
#error? ⇒ Boolean
170
171
172
|
# File 'lib/spiderfw/utils/logger.rb', line 170
def error?
Spider::Logger.error?
end
|
#fatal(*args, &proc) ⇒ Object
150
151
152
|
# File 'lib/spiderfw/utils/logger.rb', line 150
def fatal(*args, &proc)
Spider::Logger.fatal(*args, &proc)
end
|
#fatal? ⇒ Boolean
174
175
176
|
# File 'lib/spiderfw/utils/logger.rb', line 174
def fatal?
Spider::Logger.fatal?
end
|
#info(*args, &proc) ⇒ Object
138
139
140
|
# File 'lib/spiderfw/utils/logger.rb', line 138
def info(*args, &proc)
Spider::Logger.info(*args, &proc)
end
|
#info? ⇒ Boolean
162
163
164
|
# File 'lib/spiderfw/utils/logger.rb', line 162
def info?
Spider::Logger.info?
end
|
#unknown(*args, &proc) ⇒ Object
154
155
156
|
# File 'lib/spiderfw/utils/logger.rb', line 154
def unknown(*args, &proc)
Spider::Logger.unknown(*args, &proc)
end
|
#warn(*args, &proc) ⇒ Object
142
143
144
|
# File 'lib/spiderfw/utils/logger.rb', line 142
def warn(*args, &proc)
Spider::Logger.warn(*args, &proc)
end
|
#warn? ⇒ Boolean
166
167
168
|
# File 'lib/spiderfw/utils/logger.rb', line 166
def warn?
Spider::Logger.warn?
end
|