madvertise-logging 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,9 +38,9 @@ module Madvertise
|
|
38
38
|
attr_accessor :silencer
|
39
39
|
end
|
40
40
|
|
41
|
-
def initialize(
|
42
|
-
|
43
|
-
self.logger =
|
41
|
+
def initialize(backend = STDERR, progname = nil)
|
42
|
+
self.progname = progname || File.basename($0)
|
43
|
+
self.logger = backend
|
44
44
|
end
|
45
45
|
|
46
46
|
# Get the backend logger.
|
@@ -52,21 +52,19 @@ module Madvertise
|
|
52
52
|
|
53
53
|
# Set a different backend.
|
54
54
|
#
|
55
|
-
# @param [Symbol, String, Logger] value The new logger backend. Either a
|
56
|
-
# Logger object, a String containing the logfile path or a Symbol to
|
55
|
+
# @param [Symbol, String, IO, Logger] value The new logger backend. Either a
|
56
|
+
# Logger object, an IO object, a String containing the logfile path or a Symbol to
|
57
57
|
# create a default backend for :syslog or :buffer
|
58
58
|
# @return [Logger] The newly created backend logger object.
|
59
59
|
def logger=(value)
|
60
|
-
@
|
61
|
-
|
62
|
-
@backend = value.is_a?(Symbol) ? value : :logger
|
63
|
-
@logger = value.is_a?(Logger) ? value : create_backend
|
60
|
+
@backend = value
|
61
|
+
create_backend
|
64
62
|
end
|
65
63
|
|
66
64
|
# Close any connections/descriptors that may have been opened by the
|
67
65
|
# current backend.
|
68
66
|
def close
|
69
|
-
logger.close rescue nil
|
67
|
+
@logger.close rescue nil
|
70
68
|
@logger = nil
|
71
69
|
end
|
72
70
|
|
@@ -200,30 +198,55 @@ module Madvertise
|
|
200
198
|
end
|
201
199
|
|
202
200
|
def create_backend
|
201
|
+
self.close
|
202
|
+
|
203
203
|
case @backend
|
204
|
-
when :buffer
|
205
|
-
create_buffering_backend
|
206
204
|
when :syslog
|
207
205
|
create_syslog_backend
|
206
|
+
when :buffer
|
207
|
+
create_buffer_backend
|
208
|
+
when String
|
209
|
+
create_file_backend
|
210
|
+
when IO
|
211
|
+
create_io_backend
|
212
|
+
when Logger
|
213
|
+
@backend
|
208
214
|
else
|
209
|
-
|
215
|
+
raise "unknown backend: #{@backend.inspect}"
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
def create_syslog_backend
|
220
|
+
begin
|
221
|
+
require 'syslogger'
|
222
|
+
Syslogger.new(progname, Syslog::LOG_PID, Syslog::LOG_LOCAL1)
|
223
|
+
rescue LoadError
|
224
|
+
self.logger = $stderr
|
225
|
+
error("Couldn't load syslogger gem, reverting to STDERR for logging")
|
210
226
|
end
|
211
227
|
end
|
212
228
|
|
213
|
-
def
|
229
|
+
def create_buffer_backend
|
214
230
|
@logfile = StringIO.new
|
215
231
|
create_logger
|
216
232
|
end
|
217
233
|
|
218
|
-
def
|
234
|
+
def create_io_backend
|
235
|
+
@logfile = @backend
|
236
|
+
create_logger
|
237
|
+
end
|
238
|
+
|
239
|
+
def create_file_backend
|
240
|
+
@logfile = @backend
|
241
|
+
|
219
242
|
begin
|
220
243
|
FileUtils.mkdir_p(File.dirname(@logfile))
|
221
244
|
rescue
|
222
|
-
|
223
|
-
@logfile
|
245
|
+
self.logger = $stderr
|
246
|
+
error("#{@logfile} not writable, using STDERR for logging")
|
247
|
+
else
|
248
|
+
create_logger
|
224
249
|
end
|
225
|
-
|
226
|
-
create_logger
|
227
250
|
end
|
228
251
|
|
229
252
|
def create_logger
|
@@ -233,16 +256,6 @@ module Madvertise
|
|
233
256
|
end
|
234
257
|
end
|
235
258
|
|
236
|
-
def create_syslog_backend
|
237
|
-
begin
|
238
|
-
require 'syslogger'
|
239
|
-
Syslogger.new(progname, Syslog::LOG_PID, Syslog::LOG_LOCAL1)
|
240
|
-
rescue LoadError
|
241
|
-
self.logger = :logger
|
242
|
-
self.error("Couldn't load syslogger gem, reverting to standard logger")
|
243
|
-
end
|
244
|
-
end
|
245
|
-
|
246
259
|
##
|
247
260
|
# The Formatter class is responsible for formatting log messages. The
|
248
261
|
# default format is:
|
@@ -178,7 +178,7 @@ describe ImprovedLogger do
|
|
178
178
|
end
|
179
179
|
|
180
180
|
it "should fall back to stderr if logfile is not writable" do
|
181
|
-
$stderr.should_receive(:
|
181
|
+
$stderr.should_receive(:write).with(/not writable.*STDERR/)
|
182
182
|
|
183
183
|
@logfile = "/not/writable/spec.log"
|
184
184
|
@logger = ImprovedLogger.new(@logfile)
|
@@ -192,8 +192,7 @@ describe ImprovedLogger do
|
|
192
192
|
syslogger_paths = $:.select { |p| p.match(/gems\/.*syslogger-/) }
|
193
193
|
$:.replace($: - syslogger_paths)
|
194
194
|
|
195
|
-
$stderr.should_receive(:
|
196
|
-
$stderr.should_receive(:write).with(/reverting to standard logger/)
|
195
|
+
$stderr.should_receive(:write).with(/reverting to STDERR/)
|
197
196
|
@logger = ImprovedLogger.new(:syslog)
|
198
197
|
@logger.logger.should be_instance_of(Logger)
|
199
198
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: madvertise-logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-02 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Advanced logging classes with buffer backend, transactions, multi logger,
|
15
15
|
etc
|
@@ -55,7 +55,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
55
55
|
version: '0'
|
56
56
|
segments:
|
57
57
|
- 0
|
58
|
-
hash:
|
58
|
+
hash: -2521361738658986619
|
59
59
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
60
|
none: false
|
61
61
|
requirements:
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
version: '0'
|
65
65
|
segments:
|
66
66
|
- 0
|
67
|
-
hash:
|
67
|
+
hash: -2521361738658986619
|
68
68
|
requirements: []
|
69
69
|
rubyforge_project:
|
70
70
|
rubygems_version: 1.8.17
|