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
Constant Summary
collapse
- @@levels =
[:DEBUG, :WARN, :INFO, :ERROR]
Class Method Summary
collapse
-
.add(dest, logger, levels = {}) ⇒ Object
-
.check_request_level(action) ⇒ 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
-
.log(*args, &proc) ⇒ Object
-
.method_missing(method, *args, &proc) ⇒ Object
-
.open(dest, level = :WARN) ⇒ Object
-
.reopen(dest, level = :WARN) ⇒ Object
Closes and reopens a logger.
-
.request_level ⇒ Object
-
.send_to_loggers(action, *args, &proc) ⇒ Object
Sends a method to all loggers.
-
.set_request_level(level) ⇒ Object
-
.unknown(*args, &proc) ⇒ Object
-
.warn(*args, &proc) ⇒ Object
-
.warn? ⇒ Boolean
Instance Method Summary
collapse
Class Method Details
.add(dest, logger, levels = {}) ⇒ Object
33
34
35
|
# File 'lib/spiderfw/utils/logger.rb', line 33
def add(dest, logger, levels={})
@loggers[dest] = logger
end
|
.check_request_level(action) ⇒ Object
148
149
150
151
152
153
|
# File 'lib/spiderfw/utils/logger.rb', line 148
def check_request_level(action)
tl = request_level
return unless tl
action_i = @@levels.index(action.to_s.upcase.to_sym)
return action_i >= tl
end
|
.close(dest) ⇒ Object
38
39
40
41
|
# File 'lib/spiderfw/utils/logger.rb', line 38
def close(dest)
@loggers.delete(dest)
end
|
.close_all ⇒ Object
44
45
46
|
# File 'lib/spiderfw/utils/logger.rb', line 44
def close_all
@loggers = {}
end
|
118
119
120
121
122
|
# File 'lib/spiderfw/utils/logger.rb', line 118
def datetime_format
@loggers.each do |d, l|
return l.datetime_format
end
end
|
124
125
126
127
128
|
# File 'lib/spiderfw/utils/logger.rb', line 124
def datetime_format=(datetime_format)
@loggers.each do |d, l|
l.datetime_format=(datetime_format)
end
end
|
.debug(*args, &proc) ⇒ Object
77
78
79
|
# File 'lib/spiderfw/utils/logger.rb', line 77
def debug(*args, &proc)
send_to_loggers(:debug, *args, &proc)
end
|
.debug? ⇒ Boolean
81
82
83
|
# File 'lib/spiderfw/utils/logger.rb', line 81
def debug?
enquire_loggers(:debug?)
end
|
.enquire_loggers(method) ⇒ Object
68
69
70
71
|
# File 'lib/spiderfw/utils/logger.rb', line 68
def enquire_loggers(method)
@loggers.each{ |dest, l| return true if l.send(method) }
return false
end
|
.error(*args, &proc) ⇒ Object
102
103
104
|
# File 'lib/spiderfw/utils/logger.rb', line 102
def error(*args, &proc)
send_to_loggers(:error, *args, &proc)
end
|
.error? ⇒ Boolean
106
107
108
|
# File 'lib/spiderfw/utils/logger.rb', line 106
def error?
enquire_loggers(:error?)
end
|
.fatal(*args, &proc) ⇒ Object
110
111
112
|
# File 'lib/spiderfw/utils/logger.rb', line 110
def fatal(*args, &proc)
send_to_loggers(:fatal, *args, &proc)
end
|
.fatal? ⇒ Boolean
114
115
116
|
# File 'lib/spiderfw/utils/logger.rb', line 114
def fatal?
enquire_loggers(:fatal?)
end
|
.info(*args, &proc) ⇒ Object
85
86
87
|
# File 'lib/spiderfw/utils/logger.rb', line 85
def info(*args, &proc)
send_to_loggers(:info, *args, &proc)
end
|
.info? ⇒ Boolean
89
90
91
|
# File 'lib/spiderfw/utils/logger.rb', line 89
def info?
enquire_loggers(:info?)
end
|
.log(*args, &proc) ⇒ Object
73
74
75
|
# File 'lib/spiderfw/utils/logger.rb', line 73
def log(*args, &proc)
send_to_loggers(:add, *args, &proc)
end
|
.method_missing(method, *args, &proc) ⇒ Object
134
135
136
|
# File 'lib/spiderfw/utils/logger.rb', line 134
def method_missing(method, *args, &proc)
send_to_loggers(method, *args, &proc)
end
|
.open(dest, level = :WARN) ⇒ Object
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/spiderfw/utils/logger.rb', line 22
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.
49
50
51
52
53
|
# File 'lib/spiderfw/utils/logger.rb', line 49
def reopen(dest, level= :WARN)
raise RuntimeError, "No open logger for #{dest}" unless @loggers && @loggers[dest]
@loggers.delete(dest)
self.open(dest, level)
end
|
.request_level ⇒ Object
144
145
146
|
# File 'lib/spiderfw/utils/logger.rb', line 144
def request_level
Spider.current[:spider_logger_level]
end
|
.send_to_loggers(action, *args, &proc) ⇒ Object
Sends a method to all loggers.
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/spiderfw/utils/logger.rb', line 56
def send_to_loggers(action, *args, &proc)
return if $SAFE > 1
return unless @loggers
return if request_level && !check_request_level(action)
@loggers.each do |dest, logger|
begin
logger.send(action, *args, &proc)
rescue => exc
end
end
end
|
.set_request_level(level) ⇒ Object
138
139
140
141
142
|
# File 'lib/spiderfw/utils/logger.rb', line 138
def set_request_level(level)
prev = Spider.current[:spider_logger_level]
Spider.current[:spider_logger_level] = @@levels.index(level)
return prev
end
|
.unknown(*args, &proc) ⇒ Object
130
131
132
|
# File 'lib/spiderfw/utils/logger.rb', line 130
def unknown(*args, &proc)
send_to_loggers(:unknown, *args, &proc)
end
|
.warn(*args, &proc) ⇒ Object
93
94
95
|
# File 'lib/spiderfw/utils/logger.rb', line 93
def warn(*args, &proc)
send_to_loggers(:warn, *args, &proc)
end
|
.warn? ⇒ Boolean
97
98
99
|
# File 'lib/spiderfw/utils/logger.rb', line 97
def warn?
enquire_loggers(:warn?)
end
|
Instance Method Details
#debug(*args, &proc) ⇒ Object
162
163
164
|
# File 'lib/spiderfw/utils/logger.rb', line 162
def debug(*args, &proc)
Spider::Logger.debug(*args, &proc)
end
|
#debug? ⇒ Boolean
186
187
188
|
# File 'lib/spiderfw/utils/logger.rb', line 186
def debug?
Spider::Logger.debug?
end
|
#error(*args, &proc) ⇒ Object
174
175
176
|
# File 'lib/spiderfw/utils/logger.rb', line 174
def error(*args, &proc)
Spider::Logger.error(*args, &proc)
end
|
#error? ⇒ Boolean
198
199
200
|
# File 'lib/spiderfw/utils/logger.rb', line 198
def error?
Spider::Logger.error?
end
|
#fatal(*args, &proc) ⇒ Object
178
179
180
|
# File 'lib/spiderfw/utils/logger.rb', line 178
def fatal(*args, &proc)
Spider::Logger.fatal(*args, &proc)
end
|
#fatal? ⇒ Boolean
202
203
204
|
# File 'lib/spiderfw/utils/logger.rb', line 202
def fatal?
Spider::Logger.fatal?
end
|
#info(*args, &proc) ⇒ Object
166
167
168
|
# File 'lib/spiderfw/utils/logger.rb', line 166
def info(*args, &proc)
Spider::Logger.info(*args, &proc)
end
|
#info? ⇒ Boolean
190
191
192
|
# File 'lib/spiderfw/utils/logger.rb', line 190
def info?
Spider::Logger.info?
end
|
#log(*args, &proc) ⇒ Object
158
159
160
|
# File 'lib/spiderfw/utils/logger.rb', line 158
def log(*args, &proc)
Spider::Logger.add(*args, &proc)
end
|
#unknown(*args, &proc) ⇒ Object
182
183
184
|
# File 'lib/spiderfw/utils/logger.rb', line 182
def unknown(*args, &proc)
Spider::Logger.unknown(*args, &proc)
end
|
#warn(*args, &proc) ⇒ Object
170
171
172
|
# File 'lib/spiderfw/utils/logger.rb', line 170
def warn(*args, &proc)
Spider::Logger.warn(*args, &proc)
end
|
#warn? ⇒ Boolean
194
195
196
|
# File 'lib/spiderfw/utils/logger.rb', line 194
def warn?
Spider::Logger.warn?
end
|