logging 2.0.0 → 2.3.0
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.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +8 -5
- data/History.txt +59 -0
- data/LICENSE +22 -0
- data/README.md +20 -41
- data/Rakefile +2 -2
- data/examples/appenders.rb +1 -1
- data/examples/layouts.rb +1 -1
- data/examples/lazy.rb +1 -1
- data/examples/mdc.rb +2 -2
- data/examples/rails4.rb +21 -0
- data/examples/reusing_layouts.rb +51 -0
- data/lib/logging.rb +99 -9
- data/lib/logging/appender.rb +13 -34
- data/lib/logging/appenders/buffering.rb +130 -59
- data/lib/logging/appenders/console.rb +68 -57
- data/lib/logging/appenders/file.rb +43 -22
- data/lib/logging/appenders/io.rb +22 -16
- data/lib/logging/appenders/rolling_file.rb +60 -26
- data/lib/logging/appenders/string_io.rb +1 -1
- data/lib/logging/appenders/syslog.rb +3 -4
- data/lib/logging/color_scheme.rb +1 -1
- data/lib/logging/diagnostic_context.rb +100 -73
- data/lib/logging/layout.rb +144 -16
- data/lib/logging/layouts/parseable.rb +50 -12
- data/lib/logging/layouts/pattern.rb +8 -9
- data/lib/logging/log_event.rb +19 -12
- data/lib/logging/logger.rb +117 -95
- data/lib/logging/proxy.rb +1 -1
- data/lib/logging/rails_compat.rb +4 -13
- data/lib/logging/version.rb +1 -1
- data/logging.gemspec +31 -32
- data/script/console +8 -0
- data/test/appenders/{test_periodic_flushing.rb → test_async_flushing.rb} +67 -14
- data/test/appenders/test_buffered_io.rb +19 -18
- data/test/appenders/test_console.rb +55 -12
- data/test/appenders/test_file.rb +48 -28
- data/test/appenders/test_rolling_file.rb +18 -12
- data/test/appenders/test_syslog.rb +6 -0
- data/test/benchmark.rb +42 -18
- data/test/layouts/test_json.rb +14 -1
- data/test/layouts/test_nested_exceptions.rb +124 -0
- data/test/layouts/test_pattern.rb +16 -3
- data/test/layouts/test_yaml.rb +15 -1
- data/test/performance.rb +66 -0
- data/test/setup.rb +26 -30
- data/test/test_appender.rb +2 -4
- data/test/test_layout.rb +49 -0
- data/test/test_log_event.rb +10 -2
- data/test/test_logger.rb +20 -3
- data/test/test_logging.rb +75 -4
- data/test/test_mapped_diagnostic_context.rb +15 -6
- data/test/test_nested_diagnostic_context.rb +6 -1
- metadata +23 -17
data/test/setup.rb
CHANGED
@@ -1,42 +1,38 @@
|
|
1
|
-
|
2
1
|
# Equivalent to a header guard in C/C++
|
3
2
|
# Used to prevent the class/module from being loaded more than once
|
4
3
|
unless defined? LOGGING_TEST_SETUP
|
5
4
|
LOGGING_TEST_SETUP = true
|
6
5
|
|
7
|
-
require
|
8
|
-
require
|
9
|
-
|
10
|
-
require 'turn'
|
11
|
-
rescue LoadError; end
|
6
|
+
require "rubygems"
|
7
|
+
require "test/unit"
|
8
|
+
require "tmpdir"
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
LOGGING_TEST_TMPDIR = Dir.mktmpdir("logging")
|
11
|
+
Test::Unit.at_exit do
|
12
|
+
FileUtils.remove_entry(LOGGING_TEST_TMPDIR)
|
13
|
+
end
|
17
14
|
|
18
|
-
|
15
|
+
if Test::Unit::TestCase.respond_to? :test_order=
|
16
|
+
Test::Unit::TestCase.test_order = :random
|
17
|
+
end
|
19
18
|
|
19
|
+
require File.expand_path("../../lib/logging", __FILE__)
|
20
20
|
|
21
21
|
module TestLogging
|
22
|
-
module LoggingTestCase
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
22
|
+
module LoggingTestCase
|
23
|
+
|
24
|
+
def setup
|
25
|
+
super
|
26
|
+
Logging.reset
|
27
|
+
@tmpdir = LOGGING_TEST_TMPDIR
|
28
|
+
FileUtils.rm_rf(Dir.glob(File.join(@tmpdir, "*")))
|
29
|
+
end
|
30
|
+
|
31
|
+
def teardown
|
32
|
+
super
|
33
|
+
FileUtils.rm_rf(Dir.glob(File.join(@tmpdir, "*")))
|
34
|
+
end
|
31
35
|
end
|
36
|
+
end
|
32
37
|
|
33
|
-
|
34
|
-
super
|
35
|
-
FileUtils.rm_rf TMP
|
36
|
-
end
|
37
|
-
|
38
|
-
end # LoggingTestCase
|
39
|
-
end # TestLogging
|
40
|
-
|
41
|
-
end # defined?
|
42
|
-
|
38
|
+
end
|
data/test/test_appender.rb
CHANGED
@@ -189,11 +189,9 @@ module TestLogging
|
|
189
189
|
assert_equal 'test_appender', @appender.name
|
190
190
|
end
|
191
191
|
|
192
|
-
def
|
193
|
-
|
194
|
-
assert_equal expected, @appender.inspect
|
192
|
+
def test_to_s
|
193
|
+
assert_equal "<Appender name=\"test_appender\">", @appender.to_s
|
195
194
|
end
|
196
|
-
|
197
195
|
end # class TestAppender
|
198
196
|
end # module TestLogging
|
199
197
|
|
data/test/test_layout.rb
CHANGED
@@ -111,6 +111,55 @@ module TestLogging
|
|
111
111
|
assert_raise(ArgumentError) {::Logging::Layout.new :backtrace => 'foo'}
|
112
112
|
end
|
113
113
|
|
114
|
+
def test_backtrace_accessors
|
115
|
+
assert @layout.backtrace?
|
116
|
+
|
117
|
+
@layout.backtrace = :off
|
118
|
+
refute @layout.backtrace?
|
119
|
+
|
120
|
+
@layout.backtrace = 'on'
|
121
|
+
assert_equal true, @layout.backtrace
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_utc_offset
|
125
|
+
assert_nil @layout.utc_offset
|
126
|
+
|
127
|
+
@layout.utc_offset = 0
|
128
|
+
assert_equal 0, @layout.utc_offset
|
129
|
+
|
130
|
+
@layout.utc_offset = "UTC"
|
131
|
+
assert_equal 0, @layout.utc_offset
|
132
|
+
|
133
|
+
@layout.utc_offset = "+01:00"
|
134
|
+
assert_equal "+01:00", @layout.utc_offset
|
135
|
+
|
136
|
+
assert_raise(ArgumentError) {@layout.utc_offset = "06:00"}
|
137
|
+
|
138
|
+
@layout.utc_offset = nil
|
139
|
+
::Logging.utc_offset = "UTC"
|
140
|
+
assert_nil @layout.utc_offset
|
141
|
+
|
142
|
+
layout = ::Logging::Layout.new
|
143
|
+
assert_equal 0, layout.utc_offset
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_apply_utc_offset
|
147
|
+
time = Time.now.freeze
|
148
|
+
|
149
|
+
offset_time = @layout.apply_utc_offset(time)
|
150
|
+
assert_same time, offset_time
|
151
|
+
|
152
|
+
@layout.utc_offset = "UTC"
|
153
|
+
offset_time = @layout.apply_utc_offset(time)
|
154
|
+
assert_not_same time, offset_time
|
155
|
+
assert offset_time.utc?
|
156
|
+
|
157
|
+
@layout.utc_offset = "+01:00"
|
158
|
+
offset_time = @layout.apply_utc_offset(time)
|
159
|
+
assert_not_same time, offset_time
|
160
|
+
assert !offset_time.utc?
|
161
|
+
assert_equal 3600, offset_time.utc_offset
|
162
|
+
end
|
114
163
|
end # class TestLayout
|
115
164
|
end # module TestLogging
|
116
165
|
|
data/test/test_log_event.rb
CHANGED
@@ -34,6 +34,14 @@ module TestLogging
|
|
34
34
|
assert_match %r/test_log_event.rb\z/, @appender.event.file
|
35
35
|
end
|
36
36
|
|
37
|
+
def test_file_with_basepath
|
38
|
+
::Logging.basepath = File.expand_path("../../", __FILE__)
|
39
|
+
|
40
|
+
@logger.caller_tracing = true
|
41
|
+
@logger.warn "warning message"
|
42
|
+
assert_equal "test/test_log_event.rb", @appender.event.file
|
43
|
+
end
|
44
|
+
|
37
45
|
def test_level
|
38
46
|
assert_equal 1, @event.level
|
39
47
|
end
|
@@ -60,12 +68,12 @@ module TestLogging
|
|
60
68
|
assert_equal 'MyLogger', @event.logger
|
61
69
|
end
|
62
70
|
|
63
|
-
def
|
71
|
+
def test_method_name
|
64
72
|
assert_equal '', @event.file
|
65
73
|
|
66
74
|
@logger.caller_tracing = true
|
67
75
|
@logger.debug 'debug message'
|
68
|
-
assert_equal '
|
76
|
+
assert_equal 'test_method_name', @appender.event.method_name
|
69
77
|
end
|
70
78
|
|
71
79
|
end # class TestLogEvent
|
data/test/test_logger.rb
CHANGED
@@ -33,6 +33,16 @@ module TestLogging
|
|
33
33
|
assert_nil a1.readline
|
34
34
|
assert_nil a2.readline
|
35
35
|
|
36
|
+
log.add(1) { "block style message" }
|
37
|
+
assert_equal " INFO A Logger : block style message\n", a1.readline
|
38
|
+
assert_nil a1.readline
|
39
|
+
assert_nil a2.readline
|
40
|
+
|
41
|
+
log.add(1, nil, 'this should be logged (when used by Rails.logger.extend(ActiveSupport::Logger.broadcast())')
|
42
|
+
assert_equal " INFO A Logger : this should be logged (when used by Rails.logger.extend(ActiveSupport::Logger.broadcast())\n", a1.readline
|
43
|
+
assert_nil a1.readline
|
44
|
+
assert_nil a2.readline
|
45
|
+
|
36
46
|
log.add(2,[1,2,3,4])
|
37
47
|
assert_equal " WARN A Logger : <Array> #{[1,2,3,4]}\n", a1.readline
|
38
48
|
assert_nil a1.readline
|
@@ -76,6 +86,10 @@ module TestLogging
|
|
76
86
|
assert_nil a2.readline
|
77
87
|
end
|
78
88
|
|
89
|
+
def test_add_block
|
90
|
+
|
91
|
+
end
|
92
|
+
|
79
93
|
def test_add_appenders
|
80
94
|
log = ::Logging::Logger.new 'A'
|
81
95
|
|
@@ -251,11 +265,14 @@ module TestLogging
|
|
251
265
|
assert_nil a2.readline
|
252
266
|
end
|
253
267
|
|
254
|
-
def
|
268
|
+
def test_inspect_matches_default
|
255
269
|
root = ::Logging::Logger.new :root
|
256
270
|
|
257
|
-
|
258
|
-
|
271
|
+
# `to_s` triggers the default inspect behavior
|
272
|
+
expected = root.to_s.match(/0x[a-f\d]+/)[0]
|
273
|
+
actual = root.inspect.match(/0x[a-f\d]+/)[0]
|
274
|
+
|
275
|
+
assert_equal expected, actual
|
259
276
|
end
|
260
277
|
|
261
278
|
def test_level
|
data/test/test_logging.rb
CHANGED
@@ -11,8 +11,8 @@ module TestLogging
|
|
11
11
|
@levels = ::Logging::LEVELS
|
12
12
|
@lnames = ::Logging::LNAMES
|
13
13
|
|
14
|
-
@fn = File.join(
|
15
|
-
@glob = File.join(
|
14
|
+
@fn = File.join(@tmpdir, 'test.log')
|
15
|
+
@glob = File.join(@tmpdir, '*.log')
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_backtrace
|
@@ -39,6 +39,52 @@ module TestLogging
|
|
39
39
|
assert_raise(ArgumentError) {::Logging.backtrace 'foo'}
|
40
40
|
end
|
41
41
|
|
42
|
+
def test_utc_offset
|
43
|
+
assert_nil ::Logging.utc_offset
|
44
|
+
|
45
|
+
::Logging.utc_offset = 0
|
46
|
+
assert_equal 0, ::Logging.utc_offset
|
47
|
+
|
48
|
+
::Logging.utc_offset = "UTC"
|
49
|
+
assert_equal 0, ::Logging.utc_offset
|
50
|
+
|
51
|
+
::Logging.utc_offset = "+01:00"
|
52
|
+
assert_equal "+01:00", ::Logging.utc_offset
|
53
|
+
|
54
|
+
assert_raise(ArgumentError) {::Logging.utc_offset = "06:00"}
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_cause_depth
|
58
|
+
assert_equal ::Logging::DEFAULT_CAUSE_DEPTH, ::Logging.cause_depth
|
59
|
+
|
60
|
+
::Logging.cause_depth = 0
|
61
|
+
assert_equal 0, ::Logging.cause_depth
|
62
|
+
|
63
|
+
::Logging.cause_depth = nil
|
64
|
+
assert_equal ::Logging::DEFAULT_CAUSE_DEPTH, ::Logging.cause_depth
|
65
|
+
|
66
|
+
::Logging.cause_depth = "1024"
|
67
|
+
assert_equal 1024, ::Logging.cause_depth
|
68
|
+
|
69
|
+
::Logging.cause_depth = -1
|
70
|
+
assert_equal ::Logging::DEFAULT_CAUSE_DEPTH, ::Logging.cause_depth
|
71
|
+
|
72
|
+
assert_raise(ArgumentError) {::Logging.cause_depth = "foo"}
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_basepath
|
76
|
+
assert_nil ::Logging.basepath
|
77
|
+
|
78
|
+
::Logging.basepath = ""
|
79
|
+
assert_nil ::Logging.basepath
|
80
|
+
|
81
|
+
::Logging.basepath = "./"
|
82
|
+
assert_equal File.expand_path("../../", __FILE__), ::Logging.basepath
|
83
|
+
|
84
|
+
::Logging.reset
|
85
|
+
assert_nil ::Logging.basepath
|
86
|
+
end
|
87
|
+
|
42
88
|
def test_logger
|
43
89
|
assert_raise(TypeError) {::Logging.logger []}
|
44
90
|
|
@@ -207,6 +253,31 @@ module TestLogging
|
|
207
253
|
assert_match %r/\d+\.\d+\.\d+/, ::Logging.version
|
208
254
|
end
|
209
255
|
|
210
|
-
|
211
|
-
|
256
|
+
class Failer
|
257
|
+
class WriteError < StandardError ; end
|
258
|
+
def self.write(*args)
|
259
|
+
raise WriteError.new("Oh noooooo")
|
260
|
+
end
|
261
|
+
end
|
212
262
|
|
263
|
+
def test_error_handling
|
264
|
+
logger = ::Logging.logger Failer, 2, 100
|
265
|
+
logger.appenders.first.level = :debug
|
266
|
+
|
267
|
+
# No errors are raised by default
|
268
|
+
logger.fatal 'this is a debug message'
|
269
|
+
# Always reset the level; we disable appenders that raise by setting them
|
270
|
+
# to :off
|
271
|
+
logger.appenders.first.level = :debug
|
272
|
+
|
273
|
+
begin
|
274
|
+
Logging.raise_errors = true
|
275
|
+
assert_raises Failer::WriteError do
|
276
|
+
logger.fatal 'this fails because the file descriptor is closed'
|
277
|
+
end
|
278
|
+
ensure
|
279
|
+
Logging.raise_errors = false
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
@@ -105,12 +105,21 @@ module TestLogging
|
|
105
105
|
|
106
106
|
assert_not_equal context.object_id, Logging.mdc.context.object_id
|
107
107
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
108
|
+
if Logging::INHERIT_CONTEXT
|
109
|
+
assert_equal 1, Logging.mdc['foo']
|
110
|
+
assert_equal 'buz', Logging.mdc['baz']
|
111
|
+
assert_equal 'something else', Logging.mdc['foobar']
|
112
|
+
assert_nil Logging.mdc['unique']
|
113
|
+
|
114
|
+
assert_equal 1, Logging.mdc.stack.length
|
115
|
+
else
|
116
|
+
assert_nil Logging.mdc['foo']
|
117
|
+
assert_nil Logging.mdc['baz']
|
118
|
+
assert_nil Logging.mdc['foobar']
|
119
|
+
assert_nil Logging.mdc['unique']
|
120
|
+
|
121
|
+
assert_equal 1, Logging.mdc.stack.length
|
122
|
+
end
|
114
123
|
}
|
115
124
|
|
116
125
|
Thread.pass until t.status == 'sleep'
|
@@ -85,7 +85,12 @@ module TestLogging
|
|
85
85
|
sleep
|
86
86
|
|
87
87
|
assert_not_equal ary.object_id, Logging.ndc.context.object_id
|
88
|
-
|
88
|
+
|
89
|
+
if Logging::INHERIT_CONTEXT
|
90
|
+
assert_equal %w[first second], Logging.ndc.context
|
91
|
+
else
|
92
|
+
assert_empty Logging.ndc.context
|
93
|
+
end
|
89
94
|
}
|
90
95
|
|
91
96
|
Thread.pass until t.status == 'sleep'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pease
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: little-plugger
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.14'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.14'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: test-unit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '3.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '3.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bones-git
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,16 +72,16 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.8.
|
75
|
+
version: 3.8.4
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.8.
|
82
|
+
version: 3.8.4
|
83
83
|
description: |-
|
84
|
-
Logging is a flexible logging library for use in Ruby programs based on the
|
84
|
+
**Logging** is a flexible logging library for use in Ruby programs based on the
|
85
85
|
design of Java's log4j library. It features a hierarchical logging system,
|
86
86
|
custom level names, multiple output destinations per log event, custom
|
87
87
|
formatting, and more.
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- ".gitignore"
|
95
95
|
- ".travis.yml"
|
96
96
|
- History.txt
|
97
|
+
- LICENSE
|
97
98
|
- README.md
|
98
99
|
- Rakefile
|
99
100
|
- examples/appenders.rb
|
@@ -108,6 +109,8 @@ files:
|
|
108
109
|
- examples/loggers.rb
|
109
110
|
- examples/mdc.rb
|
110
111
|
- examples/names.rb
|
112
|
+
- examples/rails4.rb
|
113
|
+
- examples/reusing_layouts.rb
|
111
114
|
- examples/rspec_integration.rb
|
112
115
|
- examples/simple.rb
|
113
116
|
- lib/logging.rb
|
@@ -142,11 +145,12 @@ files:
|
|
142
145
|
- lib/spec/logging_helper.rb
|
143
146
|
- logging.gemspec
|
144
147
|
- script/bootstrap
|
148
|
+
- script/console
|
149
|
+
- test/appenders/test_async_flushing.rb
|
145
150
|
- test/appenders/test_buffered_io.rb
|
146
151
|
- test/appenders/test_console.rb
|
147
152
|
- test/appenders/test_file.rb
|
148
153
|
- test/appenders/test_io.rb
|
149
|
-
- test/appenders/test_periodic_flushing.rb
|
150
154
|
- test/appenders/test_rolling_file.rb
|
151
155
|
- test/appenders/test_string_io.rb
|
152
156
|
- test/appenders/test_syslog.rb
|
@@ -154,8 +158,10 @@ files:
|
|
154
158
|
- test/layouts/test_basic.rb
|
155
159
|
- test/layouts/test_color_pattern.rb
|
156
160
|
- test/layouts/test_json.rb
|
161
|
+
- test/layouts/test_nested_exceptions.rb
|
157
162
|
- test/layouts/test_pattern.rb
|
158
163
|
- test/layouts/test_yaml.rb
|
164
|
+
- test/performance.rb
|
159
165
|
- test/setup.rb
|
160
166
|
- test/test_appender.rb
|
161
167
|
- test/test_color_scheme.rb
|
@@ -173,7 +179,7 @@ files:
|
|
173
179
|
homepage: http://rubygems.org/gems/logging
|
174
180
|
licenses: []
|
175
181
|
metadata: {}
|
176
|
-
post_install_message:
|
182
|
+
post_install_message:
|
177
183
|
rdoc_options:
|
178
184
|
- "--main"
|
179
185
|
- README.md
|
@@ -190,23 +196,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
196
|
- !ruby/object:Gem::Version
|
191
197
|
version: '0'
|
192
198
|
requirements: []
|
193
|
-
|
194
|
-
|
195
|
-
signing_key:
|
199
|
+
rubygems_version: 3.0.1
|
200
|
+
signing_key:
|
196
201
|
specification_version: 4
|
197
202
|
summary: A flexible and extendable logging library for Ruby
|
198
203
|
test_files:
|
204
|
+
- test/appenders/test_async_flushing.rb
|
199
205
|
- test/appenders/test_buffered_io.rb
|
200
206
|
- test/appenders/test_console.rb
|
201
207
|
- test/appenders/test_file.rb
|
202
208
|
- test/appenders/test_io.rb
|
203
|
-
- test/appenders/test_periodic_flushing.rb
|
204
209
|
- test/appenders/test_rolling_file.rb
|
205
210
|
- test/appenders/test_string_io.rb
|
206
211
|
- test/appenders/test_syslog.rb
|
207
212
|
- test/layouts/test_basic.rb
|
208
213
|
- test/layouts/test_color_pattern.rb
|
209
214
|
- test/layouts/test_json.rb
|
215
|
+
- test/layouts/test_nested_exceptions.rb
|
210
216
|
- test/layouts/test_pattern.rb
|
211
217
|
- test/layouts/test_yaml.rb
|
212
218
|
- test/test_appender.rb
|