logging 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/logging/appenders/console.rb +7 -7
- data/lib/logging/appenders/file.rb +4 -4
- data/lib/logging/appenders/rolling_file.rb +5 -5
- data/lib/logging/appenders/static_appender.rb +7 -7
- data/lib/logging/layouts/basic.rb +4 -11
- data/lib/logging/layouts/pattern.rb +13 -39
- data/lib/logging/logger.rb +5 -5
- data/test/appenders/test_file.rb +24 -14
- data/test/appenders/test_io.rb +4 -5
- data/test/appenders/test_rolling_file.rb +24 -14
- data/test/layouts/test_basic.rb +7 -10
- data/test/layouts/test_pattern.rb +8 -11
- data/test/test_appender.rb +16 -2
- data/test/test_log_event.rb +5 -5
- data/test/test_logger.rb +2 -3
- metadata +3 -3
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: console.rb
|
1
|
+
# $Id: console.rb 26 2007-01-31 23:19:40Z tim_pease $
|
2
2
|
|
3
3
|
require 'logging/appenders/io'
|
4
4
|
|
@@ -12,10 +12,10 @@ module Appenders
|
|
12
12
|
|
13
13
|
#
|
14
14
|
# call-seq:
|
15
|
-
#
|
16
|
-
#
|
15
|
+
# Stdout.new
|
16
|
+
# Stdout.new( :layout => layout )
|
17
17
|
#
|
18
|
-
# Creates a new
|
18
|
+
# Creates a new Stdout Appender. The name 'stdout' will always be used for
|
19
19
|
# this appender.
|
20
20
|
#
|
21
21
|
def initialize( name = nil, opts = {} )
|
@@ -32,10 +32,10 @@ module Appenders
|
|
32
32
|
|
33
33
|
#
|
34
34
|
# call-seq:
|
35
|
-
#
|
36
|
-
#
|
35
|
+
# Stderr.new
|
36
|
+
# Stderr.new( :layout => layout )
|
37
37
|
#
|
38
|
-
# Creates a new
|
38
|
+
# Creates a new Stderr Appender. The name 'stderr' will always be used for
|
39
39
|
# this appender.
|
40
40
|
#
|
41
41
|
def initialize( name = nil, opts = {} )
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: file.rb
|
1
|
+
# $Id: file.rb 27 2007-02-01 16:58:11Z tim_pease $
|
2
2
|
|
3
3
|
require 'logging/appenders/io'
|
4
4
|
|
@@ -30,12 +30,12 @@ module Logging::Appenders
|
|
30
30
|
|
31
31
|
if ::File.exist?(@fn)
|
32
32
|
if not ::File.file?(@fn)
|
33
|
-
raise
|
33
|
+
raise ArgumentError, "#{@fn} is not a regular file"
|
34
34
|
elsif not ::File.writable?(@fn)
|
35
|
-
raise
|
35
|
+
raise ArgumentError, "#{@fn} is not writeable"
|
36
36
|
end
|
37
37
|
elsif not ::File.writable?(::File.dirname(@fn))
|
38
|
-
raise
|
38
|
+
raise ArgumentError, "#{::File.dirname(@fn)} is not writable"
|
39
39
|
end
|
40
40
|
|
41
41
|
super(name, ::File.new(@fn, mode), opts)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: rolling_file.rb
|
1
|
+
# $Id: rolling_file.rb 27 2007-02-01 16:58:11Z tim_pease $
|
2
2
|
|
3
3
|
require 'logging/appenders/file'
|
4
4
|
|
@@ -21,10 +21,10 @@ module Logging::Appenders
|
|
21
21
|
# /var/log/ruby.log => /var/log/ruby.1.log
|
22
22
|
#
|
23
23
|
# New log messages will be appended to a newly opened log file of the same
|
24
|
-
# name (<tt>/var/log/ruby.log</tt> in our example above). The age number
|
25
|
-
# all older log files is incremented when the log file is rolled. The
|
26
|
-
# of older log files to keep can be given, otherwise all the log
|
27
|
-
# kept.
|
24
|
+
# name (<tt>/var/log/ruby.log</tt> in our example above). The age number
|
25
|
+
# for all older log files is incremented when the log file is rolled. The
|
26
|
+
# number of older log files to keep can be given, otherwise all the log
|
27
|
+
# files are kept.
|
28
28
|
#
|
29
29
|
# The actual process of rolling all the log file names can be expensive if
|
30
30
|
# there are many, many older log files to process.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: static_appender.rb
|
1
|
+
# $Id: static_appender.rb 26 2007-01-31 23:19:40Z tim_pease $
|
2
2
|
|
3
3
|
require 'logging/appenders/console'
|
4
4
|
|
@@ -31,25 +31,25 @@ class Appender
|
|
31
31
|
# call-seq:
|
32
32
|
# Appender.stdout
|
33
33
|
#
|
34
|
-
# Returns an instance of the
|
35
|
-
# creates a new
|
34
|
+
# Returns an instance of the Stdout Appender. Unless the user explicitly
|
35
|
+
# creates a new Stdout Appender, the instance returned by this method
|
36
36
|
# will always be the same:
|
37
37
|
#
|
38
38
|
# Appender.stdout.object_id == Appender.stdout.object_id #=> true
|
39
39
|
#
|
40
|
-
def stdout( ) self['stdout'] || ::Logging::Appenders::
|
40
|
+
def stdout( ) self['stdout'] || ::Logging::Appenders::Stdout.new end
|
41
41
|
|
42
42
|
#
|
43
43
|
# call-seq:
|
44
44
|
# Appender.stderr
|
45
45
|
#
|
46
|
-
# Returns an instance of the
|
47
|
-
# creates a new
|
46
|
+
# Returns an instance of the Stderr Appender. Unless the user explicitly
|
47
|
+
# creates a new Stderr Appender, the instance returned by this method
|
48
48
|
# will always be the same:
|
49
49
|
#
|
50
50
|
# Appender.stderr.object_id == Appender.stderr.object_id #=> true
|
51
51
|
#
|
52
|
-
def stderr( ) self['stderr'] || ::Logging::Appenders::
|
52
|
+
def stderr( ) self['stderr'] || ::Logging::Appenders::Stderr.new end
|
53
53
|
|
54
54
|
end # class << self
|
55
55
|
end # class Appender
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: basic.rb
|
1
|
+
# $Id: basic.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'logging'
|
4
4
|
require 'logging/layout'
|
@@ -29,16 +29,9 @@ module Layouts
|
|
29
29
|
# class documentation for details about the formatting used.
|
30
30
|
#
|
31
31
|
def format( event )
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
event.data.each do |obj|
|
36
|
-
buf << start
|
37
|
-
buf << format_obj(obj)
|
38
|
-
buf << "\n"
|
39
|
-
end
|
40
|
-
|
41
|
-
return buf
|
32
|
+
obj = format_obj(event.data)
|
33
|
+
sprintf("%*s %s : %s\n", ::Logging::MAX_LEVEL_LENGTH,
|
34
|
+
::Logging::LNAMES[event.level], event.logger, obj)
|
42
35
|
end
|
43
36
|
|
44
37
|
end # class Basic
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: pattern.rb
|
1
|
+
# $Id: pattern.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'logging'
|
4
4
|
require 'logging/layout'
|
@@ -125,7 +125,7 @@ module Layouts
|
|
125
125
|
'F' => 'event.file',
|
126
126
|
'l' => '::Logging::LNAMES[event.level]',
|
127
127
|
'L' => 'event.line',
|
128
|
-
'm' =>
|
128
|
+
'm' => 'format_obj(event.data)',
|
129
129
|
'M' => 'event.method',
|
130
130
|
'p' => 'Process.pid',
|
131
131
|
'r' => 'Integer((Time.now-@created_at)*1000).to_s',
|
@@ -164,21 +164,17 @@ module Layouts
|
|
164
164
|
|
165
165
|
#
|
166
166
|
# call-seq:
|
167
|
-
# Pattern.
|
167
|
+
# Pattern.create_format_method( pf )
|
168
168
|
#
|
169
|
-
# This method will create the +format+
|
170
|
-
#
|
171
|
-
#
|
169
|
+
# This method will create the +format+ method in the given Pattern
|
170
|
+
# Layout _pf_ based on the configured format pattern specified by the
|
171
|
+
# user.
|
172
172
|
#
|
173
|
-
def self.
|
174
|
-
# Create the
|
175
|
-
|
176
|
-
|
177
|
-
code = "undef :format_str if method_defined? :format_str\n"
|
178
|
-
code << "def format_str( event )\nsprintf(\""
|
173
|
+
def self.create_format_method( pf )
|
174
|
+
# Create the format(event) method
|
175
|
+
code = "undef :format if method_defined? :format\n"
|
176
|
+
code << "def format( event )\nsprintf(\""
|
179
177
|
pattern = pf.pattern.dup
|
180
|
-
have_m_directive = false
|
181
|
-
have_percent = false
|
182
178
|
args = []
|
183
179
|
|
184
180
|
while true
|
@@ -186,12 +182,7 @@ module Layouts
|
|
186
182
|
code << m[1] unless m[1].empty?
|
187
183
|
|
188
184
|
case m[3]
|
189
|
-
when '%'
|
190
|
-
code << '%%%%' # this results in a %% in the format string
|
191
|
-
have_percent = true
|
192
|
-
when 'm'
|
193
|
-
code << '%' + m[2] + 's'
|
194
|
-
have_m_directive = true
|
185
|
+
when '%': code << '%%'
|
195
186
|
when *DIRECTIVE_TABLE.keys
|
196
187
|
code << m[2] + 's'
|
197
188
|
args << DIRECTIVE_TABLE[m[3]]
|
@@ -209,23 +200,6 @@ module Layouts
|
|
209
200
|
code << ")\n"
|
210
201
|
code << "end\n"
|
211
202
|
|
212
|
-
code.gsub!('%%', '%') if have_percent and not have_m_directive
|
213
|
-
pf.meta_eval code
|
214
|
-
|
215
|
-
# Create the format(event) method
|
216
|
-
code = "undef :format if method_defined? :format\n"
|
217
|
-
if have_m_directive
|
218
|
-
code << <<-CODE
|
219
|
-
def format( event )
|
220
|
-
fmt = format_str(event)
|
221
|
-
buf = ''
|
222
|
-
event.data.each {|obj| buf << sprintf(fmt, format_obj(obj))}
|
223
|
-
buf
|
224
|
-
end
|
225
|
-
CODE
|
226
|
-
else
|
227
|
-
code << "alias :format :format_str\n"
|
228
|
-
end
|
229
203
|
pf.meta_eval code
|
230
204
|
end
|
231
205
|
# :startdoc:
|
@@ -254,7 +228,7 @@ module Layouts
|
|
254
228
|
@date_pattern = ISO8601 if @date_pattern.nil? and @date_method.nil?
|
255
229
|
|
256
230
|
Pattern.create_date_format_methods(self)
|
257
|
-
Pattern.
|
231
|
+
Pattern.create_format_method(self)
|
258
232
|
end
|
259
233
|
|
260
234
|
attr_reader :pattern, :date_pattern, :date_method
|
@@ -267,7 +241,7 @@ module Layouts
|
|
267
241
|
#
|
268
242
|
def pattern=( var )
|
269
243
|
@pattern = var
|
270
|
-
Pattern.
|
244
|
+
Pattern.create_format_method(self)
|
271
245
|
end
|
272
246
|
|
273
247
|
#
|
data/lib/logging/logger.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: logger.rb
|
1
|
+
# $Id: logger.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'thread'
|
4
4
|
require 'logging'
|
@@ -100,14 +100,14 @@ module Logging
|
|
100
100
|
if logger.level > num
|
101
101
|
code << <<-CODE
|
102
102
|
def #{name}?( ) false end
|
103
|
-
def #{name}(
|
103
|
+
def #{name}( data = nil ) false end
|
104
104
|
CODE
|
105
105
|
else
|
106
106
|
code << <<-CODE
|
107
107
|
def #{name}?( ) true end
|
108
|
-
def #{name}(
|
109
|
-
|
110
|
-
log_event(::Logging::LogEvent.new(@name, #{num},
|
108
|
+
def #{name}( data = nil )
|
109
|
+
data = yield if block_given?
|
110
|
+
log_event(::Logging::LogEvent.new(@name, #{num}, data, @trace)) unless data.nil?
|
111
111
|
true
|
112
112
|
end
|
113
113
|
CODE
|
data/test/appenders/test_file.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_file.rb
|
1
|
+
# $Id: test_file.rb 27 2007-02-01 16:58:11Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
require 'fileutils'
|
@@ -10,6 +10,7 @@ module TestAppenders
|
|
10
10
|
include LoggingTestCase
|
11
11
|
|
12
12
|
TMP = 'tmp'
|
13
|
+
NAME = 'logfile'
|
13
14
|
|
14
15
|
def setup
|
15
16
|
super
|
@@ -22,27 +23,28 @@ module TestAppenders
|
|
22
23
|
end
|
23
24
|
|
24
25
|
def teardown
|
26
|
+
cleanup
|
25
27
|
FileUtils.rm_rf TMP
|
26
28
|
end
|
27
29
|
|
28
30
|
def test_initialize
|
29
31
|
log = File.join(TMP, 'uw_dir', 'file.log')
|
30
|
-
assert_raise(
|
31
|
-
::Logging::Appenders::File.new(
|
32
|
+
assert_raise(ArgumentError) do
|
33
|
+
::Logging::Appenders::File.new(NAME, :filename => log)
|
32
34
|
end
|
33
35
|
|
34
36
|
log = File.join(TMP, 'dir')
|
35
|
-
assert_raise(
|
36
|
-
::Logging::Appenders::File.new(
|
37
|
+
assert_raise(ArgumentError) do
|
38
|
+
::Logging::Appenders::File.new(NAME, :filename => log)
|
37
39
|
end
|
38
40
|
|
39
41
|
log = File.join(TMP, 'uw_file')
|
40
|
-
assert_raise(
|
41
|
-
::Logging::Appenders::File.new(
|
42
|
+
assert_raise(ArgumentError) do
|
43
|
+
::Logging::Appenders::File.new(NAME, :filename => log)
|
42
44
|
end
|
43
45
|
|
44
46
|
log = File.join(TMP, 'file.log')
|
45
|
-
appender = ::Logging::Appenders::File.new
|
47
|
+
appender = ::Logging::Appenders::File.new NAME, 'filename' => log
|
46
48
|
assert_equal 'logfile', appender.name
|
47
49
|
appender << "This will be the first line\n"
|
48
50
|
appender << "This will be the second line\n"
|
@@ -52,9 +54,9 @@ module TestAppenders
|
|
52
54
|
assert_equal "This will be the second line\n", file.readline
|
53
55
|
assert_raise(EOFError) {file.readline}
|
54
56
|
end
|
55
|
-
|
57
|
+
cleanup
|
56
58
|
|
57
|
-
appender = ::Logging::Appenders::File.new
|
59
|
+
appender = ::Logging::Appenders::File.new NAME, :filename => log
|
58
60
|
assert_equal 'logfile', appender.name
|
59
61
|
appender << "This will be the third line\n"
|
60
62
|
appender.flush
|
@@ -64,10 +66,10 @@ module TestAppenders
|
|
64
66
|
assert_equal "This will be the third line\n", file.readline
|
65
67
|
assert_raise(EOFError) {file.readline}
|
66
68
|
end
|
67
|
-
|
69
|
+
cleanup
|
68
70
|
|
69
|
-
appender = ::Logging::Appenders::File.new
|
70
|
-
|
71
|
+
appender = ::Logging::Appenders::File.new NAME, :filename => log,
|
72
|
+
:truncate => true
|
71
73
|
assert_equal 'logfile', appender.name
|
72
74
|
appender << "The file was truncated\n"
|
73
75
|
appender.flush
|
@@ -75,7 +77,15 @@ module TestAppenders
|
|
75
77
|
assert_equal "The file was truncated\n", file.readline
|
76
78
|
assert_raise(EOFError) {file.readline}
|
77
79
|
end
|
78
|
-
|
80
|
+
cleanup
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
def cleanup
|
85
|
+
unless ::Logging::Appender[NAME].nil?
|
86
|
+
::Logging::Appender[NAME].close false
|
87
|
+
::Logging::Appender[NAME] = nil
|
88
|
+
end
|
79
89
|
end
|
80
90
|
|
81
91
|
end # class TestFile
|
data/test/appenders/test_io.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_io.rb
|
1
|
+
# $Id: test_io.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
require 'stringio'
|
@@ -21,16 +21,15 @@ module TestAppenders
|
|
21
21
|
|
22
22
|
def test_append
|
23
23
|
event = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
|
24
|
-
[
|
24
|
+
[1, 2, 3, 4], false)
|
25
25
|
@appender.append event
|
26
26
|
assert_equal " WARN TestLogger : <Array> 1234\n", readline
|
27
27
|
assert_raise(EOFError) {readline}
|
28
28
|
|
29
29
|
event.level = @levels['debug']
|
30
|
-
event.data =
|
30
|
+
event.data = 'the big log message'
|
31
31
|
@appender.append event
|
32
32
|
assert_equal "DEBUG TestLogger : the big log message\n", readline
|
33
|
-
assert_equal "DEBUG TestLogger : <Array> 1234\n", readline
|
34
33
|
assert_raise(EOFError) {readline}
|
35
34
|
|
36
35
|
@appender.close
|
@@ -40,7 +39,7 @@ module TestAppenders
|
|
40
39
|
def test_append_error
|
41
40
|
@sio.close
|
42
41
|
event = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
|
43
|
-
[
|
42
|
+
[1, 2, 3, 4], false)
|
44
43
|
assert_raise(IOError) {@appender.append event}
|
45
44
|
assert_equal true, @appender.closed?
|
46
45
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_rolling_file.rb
|
1
|
+
# $Id: test_rolling_file.rb 27 2007-02-01 16:58:11Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
require 'fileutils'
|
@@ -10,6 +10,7 @@ module TestAppenders
|
|
10
10
|
include LoggingTestCase
|
11
11
|
|
12
12
|
TMP = 'tmp'
|
13
|
+
NAME = 'roller'
|
13
14
|
|
14
15
|
def setup
|
15
16
|
super
|
@@ -21,6 +22,7 @@ module TestAppenders
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def teardown
|
25
|
+
cleanup
|
24
26
|
FileUtils.rm_rf TMP
|
25
27
|
end
|
26
28
|
|
@@ -28,28 +30,28 @@ module TestAppenders
|
|
28
30
|
assert_equal [], Dir.glob(@glob)
|
29
31
|
|
30
32
|
# create a new appender
|
31
|
-
ap = ::Logging::Appenders::RollingFile.new(
|
33
|
+
ap = ::Logging::Appenders::RollingFile.new(NAME, :filename => @fn)
|
32
34
|
assert File.exist?(@fn)
|
33
35
|
assert_equal 0, File.size(@fn)
|
34
36
|
|
35
37
|
ap << "Just a line of text\n" # 20 bytes
|
36
38
|
ap.flush
|
37
39
|
assert_equal 20, File.size(@fn)
|
38
|
-
|
40
|
+
cleanup
|
39
41
|
|
40
42
|
# make sure we append to the current file (not truncate)
|
41
|
-
ap = ::Logging::Appenders::RollingFile.new(
|
43
|
+
ap = ::Logging::Appenders::RollingFile.new(NAME, :filename => @fn)
|
42
44
|
assert_equal [@fn], Dir.glob(@glob)
|
43
45
|
assert_equal 20, File.size(@fn)
|
44
46
|
|
45
47
|
ap << "Just another line of text\n" # 26 bytes
|
46
48
|
ap.flush
|
47
49
|
assert_equal 46, File.size(@fn)
|
48
|
-
|
50
|
+
cleanup
|
49
51
|
|
50
52
|
# setting the truncate option to true should roll the current log file
|
51
53
|
# and create a new one
|
52
|
-
ap = ::Logging::Appenders::RollingFile.new(
|
54
|
+
ap = ::Logging::Appenders::RollingFile.new(NAME,
|
53
55
|
:filename => @fn, :truncate => true)
|
54
56
|
|
55
57
|
log1 = sprintf(@fn_fmt, 1)
|
@@ -60,7 +62,7 @@ module TestAppenders
|
|
60
62
|
ap << "Some more text in the new file\n" # 31 bytes
|
61
63
|
ap.flush
|
62
64
|
assert_equal 31, File.size(@fn)
|
63
|
-
|
65
|
+
cleanup
|
64
66
|
end
|
65
67
|
|
66
68
|
def test_keep
|
@@ -73,7 +75,7 @@ module TestAppenders
|
|
73
75
|
FileUtils.touch(@fn)
|
74
76
|
|
75
77
|
# keep only five files
|
76
|
-
ap = ::Logging::Appenders::RollingFile.new(
|
78
|
+
ap = ::Logging::Appenders::RollingFile.new(NAME,
|
77
79
|
:filename => @fn, :keep => 5)
|
78
80
|
|
79
81
|
# we still have 13 files because we did not truncate the log file,
|
@@ -88,29 +90,29 @@ module TestAppenders
|
|
88
90
|
name = sprintf(@fn_fmt, cnt)
|
89
91
|
assert_equal cnt-1, File.size(name)
|
90
92
|
end
|
91
|
-
|
93
|
+
cleanup
|
92
94
|
end
|
93
95
|
|
94
96
|
def test_max_age
|
95
97
|
assert_equal [], Dir.glob(@glob)
|
96
98
|
|
97
|
-
ap = ::Logging::Appenders::RollingFile.new(
|
99
|
+
ap = ::Logging::Appenders::RollingFile.new(NAME,
|
98
100
|
:filename => @fn, :max_age => 1)
|
99
101
|
|
100
102
|
ap << "random message\n"
|
101
103
|
assert_equal 1, Dir.glob(@glob).length
|
102
104
|
|
103
|
-
sleep 1
|
105
|
+
sleep 1.250
|
104
106
|
ap << "another random message\n"
|
105
107
|
assert_equal 2, Dir.glob(@glob).length
|
106
108
|
|
107
|
-
|
109
|
+
cleanup
|
108
110
|
end
|
109
111
|
|
110
112
|
def test_max_size
|
111
113
|
assert_equal [], Dir.glob(@glob)
|
112
114
|
|
113
|
-
ap = ::Logging::Appenders::RollingFile.new(
|
115
|
+
ap = ::Logging::Appenders::RollingFile.new(NAME,
|
114
116
|
:filename => @fn, :max_size => 100)
|
115
117
|
|
116
118
|
ap << 'X' * 100; ap.flush
|
@@ -131,7 +133,15 @@ module TestAppenders
|
|
131
133
|
assert_equal 3, Dir.glob(@glob).length
|
132
134
|
assert_equal 0, File.size(@fn)
|
133
135
|
|
134
|
-
|
136
|
+
cleanup
|
137
|
+
end
|
138
|
+
|
139
|
+
private
|
140
|
+
def cleanup
|
141
|
+
unless ::Logging::Appender[NAME].nil?
|
142
|
+
::Logging::Appender[NAME].close false
|
143
|
+
::Logging::Appender[NAME] = nil
|
144
|
+
end
|
135
145
|
end
|
136
146
|
|
137
147
|
end # class TestRollingFile
|
data/test/layouts/test_basic.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_basic.rb
|
1
|
+
# $Id: test_basic.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
|
@@ -17,24 +17,21 @@ module TestLayouts
|
|
17
17
|
|
18
18
|
def test_format
|
19
19
|
event = ::Logging::LogEvent.new( 'ArrayLogger', @levels['info'],
|
20
|
-
|
20
|
+
'log message', false)
|
21
21
|
assert_equal " INFO ArrayLogger : log message\n", @layout.format(event)
|
22
22
|
|
23
|
-
event.data = [
|
23
|
+
event.data = [1, 2, 3, 4]
|
24
24
|
assert_equal " INFO ArrayLogger : <Array> 1234\n", @layout.format(event)
|
25
25
|
|
26
26
|
event.level = @levels['debug']
|
27
|
-
event.data =
|
28
|
-
log =
|
29
|
-
log << "DEBUG ArrayLogger : and some message\n"
|
27
|
+
event.data = 'and another message'
|
28
|
+
log = "DEBUG ArrayLogger : and another message\n"
|
30
29
|
assert_equal log, @layout.format(event)
|
31
30
|
|
32
31
|
event.logger = 'Test'
|
33
32
|
event.level = @levels['fatal']
|
34
|
-
event.data =
|
35
|
-
log =
|
36
|
-
log << "FATAL Test : and some message\n"
|
37
|
-
log << "FATAL Test : <Exception> Exception\n"
|
33
|
+
event.data = Exception.new
|
34
|
+
log = "FATAL Test : <Exception> Exception\n"
|
38
35
|
assert_equal log, @layout.format(event)
|
39
36
|
end
|
40
37
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_pattern.rb
|
1
|
+
# $Id: test_pattern.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
|
@@ -60,27 +60,24 @@ module TestLayouts
|
|
60
60
|
fmt = '\[' + @date_fmt + '\] %s -- %s : %s\n'
|
61
61
|
|
62
62
|
event = ::Logging::LogEvent.new('ArrayLogger', @levels['info'],
|
63
|
-
|
63
|
+
'log message', false)
|
64
64
|
rgxp = Regexp.new(sprintf(fmt, 'INFO ', 'ArrayLogger', 'log message'))
|
65
65
|
assert_match rgxp, @layout.format(event)
|
66
66
|
|
67
|
-
event.data = [
|
67
|
+
event.data = [1, 2, 3, 4]
|
68
68
|
rgxp = Regexp.new(sprintf(fmt, 'INFO ', 'ArrayLogger', '<Array> 1234'))
|
69
69
|
assert_match rgxp, @layout.format(event)
|
70
70
|
|
71
71
|
event.level = @levels['debug']
|
72
|
-
event.data =
|
72
|
+
event.data = 'and another message'
|
73
73
|
rgxp = Regexp.new(
|
74
|
-
sprintf(fmt, 'DEBUG', 'ArrayLogger', '
|
75
|
-
sprintf(fmt, 'DEBUG', 'ArrayLogger', 'and some message'))
|
74
|
+
sprintf(fmt, 'DEBUG', 'ArrayLogger', 'and another message'))
|
76
75
|
assert_match rgxp, @layout.format(event)
|
77
76
|
|
78
77
|
event.logger = 'Test'
|
79
78
|
event.level = @levels['fatal']
|
80
|
-
event.data =
|
79
|
+
event.data = Exception.new
|
81
80
|
rgxp = Regexp.new(
|
82
|
-
sprintf(fmt, 'FATAL', 'Test', '<Array> 1234') +
|
83
|
-
sprintf(fmt, 'FATAL', 'Test', 'and some message') +
|
84
81
|
sprintf(fmt, 'FATAL', 'Test', '<Exception> Exception'))
|
85
82
|
assert_match rgxp, @layout.format(event)
|
86
83
|
end
|
@@ -105,7 +102,7 @@ module TestLayouts
|
|
105
102
|
|
106
103
|
def test_pattern_all
|
107
104
|
event = ::Logging::LogEvent.new('TestLogger', @levels['info'],
|
108
|
-
|
105
|
+
'log message', false)
|
109
106
|
event.instance_variable_set :@file, 'test_file.rb'
|
110
107
|
event.instance_variable_set :@line, '123'
|
111
108
|
event.instance_variable_set :@method, 'method_name'
|
@@ -161,7 +158,7 @@ module TestLayouts
|
|
161
158
|
@layout.pattern = '%7.7m'
|
162
159
|
assert_equal 'log mes', @layout.format(event)
|
163
160
|
|
164
|
-
event.data =
|
161
|
+
event.data = 'tim'
|
165
162
|
assert_equal ' tim', @layout.format(event)
|
166
163
|
|
167
164
|
@layout.pattern = '%-7.7m'
|
data/test/test_appender.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_appender.rb
|
1
|
+
# $Id: test_appender.rb 26 2007-01-31 23:19:40Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
|
@@ -13,7 +13,7 @@ module TestLogging
|
|
13
13
|
::Logging.define_levels %w(debug info warn error fatal)
|
14
14
|
@levels = ::Logging::LEVELS
|
15
15
|
@event = ::Logging::LogEvent.new('logger', @levels['debug'],
|
16
|
-
|
16
|
+
'message', false)
|
17
17
|
@appender = ::Logging::Appender.new 'test_appender'
|
18
18
|
end
|
19
19
|
|
@@ -37,6 +37,20 @@ module TestLogging
|
|
37
37
|
assert_raise(RuntimeError) {@appender.append @event}
|
38
38
|
end
|
39
39
|
|
40
|
+
def test_class_stderr
|
41
|
+
stderr = ::Logging::Appender.stderr
|
42
|
+
assert_instance_of ::Logging::Appenders::Stderr, stderr
|
43
|
+
assert_equal 'stderr', stderr.name
|
44
|
+
assert_same stderr, ::Logging::Appender.stderr
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_class_stdout
|
48
|
+
stdout = ::Logging::Appender.stdout
|
49
|
+
assert_instance_of ::Logging::Appenders::Stdout, stdout
|
50
|
+
assert_equal 'stdout', stdout.name
|
51
|
+
assert_same stdout, ::Logging::Appender.stdout
|
52
|
+
end
|
53
|
+
|
40
54
|
def test_close
|
41
55
|
assert_equal false, @appender.closed?
|
42
56
|
|
data/test/test_log_event.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_log_event.rb
|
1
|
+
# $Id: test_log_event.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
|
@@ -14,17 +14,17 @@ module TestLogging
|
|
14
14
|
@logger = ::Logging::Logger['TestLogger']
|
15
15
|
@logger.add @appender
|
16
16
|
|
17
|
-
@logger.info 'message 1'
|
17
|
+
@logger.info 'message 1'
|
18
18
|
@event = @appender.event
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_data
|
22
|
-
assert_equal
|
22
|
+
assert_equal 'message 1', @event.data
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_data_eq
|
26
|
-
@event.data =
|
27
|
-
assert_equal
|
26
|
+
@event.data = 'message 2'
|
27
|
+
assert_equal 'message 2', @event.data
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_file
|
data/test/test_logger.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_logger.rb
|
1
|
+
# $Id: test_logger.rb 25 2007-01-30 20:19:12Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
require 'stringio'
|
@@ -286,8 +286,7 @@ module TestLogging
|
|
286
286
|
assert_nil a1.readline
|
287
287
|
assert_nil a2.readline
|
288
288
|
|
289
|
-
log.warn
|
290
|
-
assert_equal " WARN A Logger : this is a warning\n", a1.readline
|
289
|
+
log.warn [1,2,3,4]
|
291
290
|
assert_equal " WARN A Logger : <Array> 1234\n", a1.readline
|
292
291
|
assert_nil a1.readline
|
293
292
|
assert_nil a2.readline
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.1
|
3
3
|
specification_version: 1
|
4
4
|
name: logging
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-01
|
6
|
+
version: 0.3.0
|
7
|
+
date: 2007-02-01 00:00:00 -07:00
|
8
8
|
summary: A flexible and extendable logging library for Ruby.
|
9
9
|
require_paths:
|
10
10
|
- lib
|