log4r 1.1.9 → 1.1.10
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.
- data/examples/log4r_yaml.yaml +0 -0
- data/examples/yaml.rb +4 -4
- data/lib/log4r.rb +1 -4
- data/lib/log4r/formatter/formatter.rb +1 -1
- data/lib/log4r/formatter/log4jxmlformatter.rb +6 -2
- data/lib/log4r/outputter/fileoutputter.rb +1 -1
- data/lib/log4r/outputter/scribeoutputter.rb +37 -0
- data/lib/log4r/outputter/udpoutputter.rb +2 -2
- data/lib/log4r/rdoc/log4jxmlformatter +21 -0
- data/lib/log4r/rdoc/scribeoutputter +16 -0
- data/lib/log4r/version.rb +4 -0
- data/lib/log4r/yamlconfigurator.rb +24 -22
- data/tests/testGDC.rb +3 -5
- data/tests/testMDC.rb +5 -7
- data/tests/testNDC.rb +3 -5
- data/tests/test_helper.rb +12 -0
- data/tests/testall.rb +1 -1
- data/tests/testbase.rb +8 -9
- data/tests/testchainsaw.rb +1 -7
- data/tests/testcustom.rb +21 -18
- data/tests/testformatter.rb +7 -3
- data/tests/testlogger.rb +16 -12
- data/tests/testoutputter.rb +22 -11
- data/tests/testpatternformatter.rb +8 -10
- data/tests/testthreads.rb +9 -13
- data/tests/testxmlconf.rb +7 -4
- data/tests/testyaml.rb +39 -0
- data/tests/testyaml_arrays.yaml +25 -0
- data/tests/testyaml_injection.yaml +22 -0
- metadata +70 -23
- data/INSTALL +0 -11
- data/LICENSE +0 -90
- data/LICENSE.LGPLv3 +0 -165
- data/README +0 -94
- data/Rakefile +0 -74
- data/TODO +0 -2
data/tests/testoutputter.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
require "log4r"
|
4
|
-
include Log4r
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'test_helper'
|
5
3
|
|
4
|
+
class TestOutputter < TestCase
|
5
|
+
include Log4r
|
6
6
|
|
7
|
-
class TestOutputter < Test::Unit::TestCase
|
8
7
|
def test_validation
|
9
8
|
assert_raise(ArgumentError) { Outputter.new }
|
10
9
|
assert_raise(ArgumentError) { Outputter.new 'fonda', :level=>-10}
|
@@ -55,13 +54,13 @@ class TestOutputter < Test::Unit::TestCase
|
|
55
54
|
assert_raise(TypeError) { o.formatter = "bogus" }
|
56
55
|
assert_raise(TypeError) { o.formatter = -3 }
|
57
56
|
# the formatter should be preserved
|
58
|
-
assert(o.formatter.class == Formatter)
|
57
|
+
assert(o.formatter.class == Formatter)
|
59
58
|
end
|
60
59
|
def test_file
|
61
60
|
assert_raise(TypeError) { FileOutputter.new 'f' }
|
62
61
|
assert_raise(TypeError) { FileOutputter.new('fa', :filename => DEBUG) }
|
63
62
|
assert_raise(TypeError) { FileOutputter.new('fo', :filename => nil) }
|
64
|
-
assert_nothing_raised {
|
63
|
+
assert_nothing_raised {
|
65
64
|
FileOutputter.new('fi', :filename => './junk/tmp')
|
66
65
|
FileOutputter.new('fum', :filename=>'./junk/tmp', :trunc => "true")
|
67
66
|
}
|
@@ -80,11 +79,11 @@ class TestOutputter < Test::Unit::TestCase
|
|
80
79
|
for mname in LNAMES
|
81
80
|
next if mname == 'OFF' || mname == 'ALL'
|
82
81
|
assert_respond_to(o, mname.downcase.to_sym, "Test respond to #{mname.to_s}")
|
83
|
-
end
|
82
|
+
end
|
84
83
|
return # cuz the rest is borked
|
85
84
|
# we rely on BasicFormatter's inability to reference a nil Logger to test
|
86
85
|
# the log methods. Everything from WARN to FATAL should choke.
|
87
|
-
event = LogEvent.new(nil, nil, nil, nil)
|
86
|
+
event = LogEvent.new(nil, nil, nil, nil)
|
88
87
|
assert_nothing_raised { o.debug event }
|
89
88
|
assert_nothing_raised { o.info event }
|
90
89
|
assert_raise(NameError) { o.warn event }
|
@@ -94,7 +93,7 @@ class TestOutputter < Test::Unit::TestCase
|
|
94
93
|
o.level = ERROR
|
95
94
|
assert_nothing_raised { o.debug event}
|
96
95
|
assert_nothing_raised { o.info event}
|
97
|
-
assert_nothing_raised { o.warn event}
|
96
|
+
assert_nothing_raised { o.warn event}
|
98
97
|
assert_raise(NameError) { o.error event}
|
99
98
|
assert_raise(NameError) { o.fatal event}
|
100
99
|
end
|
@@ -113,6 +112,18 @@ class TestOutputter < Test::Unit::TestCase
|
|
113
112
|
assert_nothing_raised { o.info event}
|
114
113
|
assert_nothing_raised { o.fatal event}
|
115
114
|
end
|
115
|
+
if defined?( Encoding )
|
116
|
+
# tests that files are opened in binary mode
|
117
|
+
def test_file_encoding
|
118
|
+
Encoding.default_internal = Encoding::UTF_8
|
119
|
+
File.open( './junk/tmp2', 'w' ) { |f| f.write( 'scheiß encoding' ) }
|
120
|
+
fenc = FileOutputter.new('fenc', :filename => './junk/tmp2')
|
121
|
+
event = LogEvent.new(1, Logger.root, nil, 'scheiß encoding'.force_encoding('ASCII-8BIT'))
|
122
|
+
assert_nothing_raised(Encoding::UndefinedConversionError) do
|
123
|
+
fenc.debug event
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
116
127
|
def broken_test_threading
|
117
128
|
class << self
|
118
129
|
def log_work
|
@@ -129,4 +140,4 @@ class TestOutputter < Test::Unit::TestCase
|
|
129
140
|
ts = Thread.new(log_thread_start)
|
130
141
|
ts.join
|
131
142
|
end
|
132
|
-
end
|
143
|
+
end
|
@@ -1,16 +1,14 @@
|
|
1
|
-
|
2
|
-
require "test/unit"
|
3
|
-
require "log4r"
|
4
|
-
include Log4r
|
1
|
+
require 'test_helper'
|
5
2
|
|
3
|
+
class TestPatternFormatter < TestCase
|
4
|
+
include Log4r
|
6
5
|
|
7
|
-
class TestPatternFormatter < Test::Unit::TestCase
|
8
6
|
def test_pattern
|
9
7
|
l = Logger.new 'test::this::that'
|
10
8
|
l.trace = true
|
11
|
-
o = StdoutOutputter.new 'test'
|
9
|
+
o = StdoutOutputter.new 'test'
|
12
10
|
l.add o
|
13
|
-
assert_nothing_raised {
|
11
|
+
assert_nothing_raised {
|
14
12
|
f = PatternFormatter.new :pattern=> "'%t' T-'%T' %d %6l [%C]%c %% %-40.30M"
|
15
13
|
#:date_pattern=> "%Y"
|
16
14
|
#:date_method => :usec
|
@@ -28,7 +26,7 @@ class TestPatternFormatter < Test::Unit::TestCase
|
|
28
26
|
def test_ndc
|
29
27
|
l = Logger.new 'test::this::that::other'
|
30
28
|
l.trace = true
|
31
|
-
o = StdoutOutputter.new 'testy'
|
29
|
+
o = StdoutOutputter.new 'testy'
|
32
30
|
l.add o
|
33
31
|
f = PatternFormatter.new :pattern=> "%d %6l [%C]%c {%x} %% %-40.30M"
|
34
32
|
#:date_pattern=> "%Y"
|
@@ -49,7 +47,7 @@ class TestPatternFormatter < Test::Unit::TestCase
|
|
49
47
|
def test_gdc
|
50
48
|
l = Logger.new 'test::this::that::other'
|
51
49
|
l.trace = true
|
52
|
-
o = StdoutOutputter.new 'testy'
|
50
|
+
o = StdoutOutputter.new 'testy'
|
53
51
|
l.add o
|
54
52
|
f = PatternFormatter.new :pattern=> "%d %6l [%C]%c {%g} %% %-40.30M"
|
55
53
|
#:date_pattern=> "%Y"
|
@@ -64,7 +62,7 @@ class TestPatternFormatter < Test::Unit::TestCase
|
|
64
62
|
def test_mdc
|
65
63
|
l = Logger.new 'test::this::that::other'
|
66
64
|
l.trace = true
|
67
|
-
o = StdoutOutputter.new 'testy'
|
65
|
+
o = StdoutOutputter.new 'testy'
|
68
66
|
l.add o
|
69
67
|
f = PatternFormatter.new :pattern=> "%d %6l [%C]%c {%X{user}} %% %-40.30M"
|
70
68
|
#:date_pattern=> "%Y"
|
data/tests/testthreads.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# $Id$
|
2
2
|
# Test guts sent in by chetreddy bug #27184
|
3
|
-
#
|
3
|
+
#
|
4
4
|
# Note: this test won't always catch a threading problem, as it
|
5
5
|
# relies on a brute force approach. NUM_THREADS can be increased
|
6
6
|
# to stress the system longer and therefore increasing the chance
|
@@ -8,14 +8,10 @@
|
|
8
8
|
# test.
|
9
9
|
#
|
10
10
|
|
11
|
+
require 'test_helper'
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
require "test/unit"
|
15
|
-
require 'log4r'
|
16
|
-
include Log4r
|
17
|
-
|
18
|
-
class TestThreads < Test::Unit::TestCase
|
13
|
+
class TestThreads < TestCase
|
14
|
+
include Log4r
|
19
15
|
|
20
16
|
NUMTHREADS = 1000
|
21
17
|
|
@@ -24,11 +20,11 @@ class TestThreads < Test::Unit::TestCase
|
|
24
20
|
assert_nothing_raised do
|
25
21
|
(0..NUMTHREADS).map do |i|
|
26
22
|
Thread.new do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
23
|
+
Thread.current[:logger] = Log4r::Logger.new "Hello #{i}"
|
24
|
+
Thread.current[:logger].outputters = [StdoutOutputter.new("log4r#{i}")]
|
25
|
+
Thread.current[:logger].outputters.each { |j| j.flush }
|
26
|
+
Thread.current.exit()
|
27
|
+
end
|
32
28
|
end.each do |thr| thr.join end
|
33
29
|
end
|
34
30
|
end
|
data/tests/testxmlconf.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'test_helper'
|
1
2
|
|
2
3
|
One=<<-EOX
|
3
4
|
<log4r_config><pre_config><custom_levels> Foo </custom_levels>
|
@@ -14,28 +15,30 @@ EOX
|
|
14
15
|
|
15
16
|
# must be run independently
|
16
17
|
class TestXmlConf < TestCase
|
18
|
+
include Log4r
|
19
|
+
|
17
20
|
def test_load1
|
18
21
|
Configurator.load_xml_string(One)
|
19
|
-
|
22
|
+
assert_nothing_raised{
|
20
23
|
assert(Foo == 1)
|
21
24
|
assert(Logger.global.level == ALL)
|
22
25
|
}
|
23
26
|
end
|
24
27
|
def test_load2
|
25
28
|
Configurator.load_xml_string(Two)
|
26
|
-
|
29
|
+
assert_nothing_raised{
|
27
30
|
assert(Logger.global.level == DEBUG)
|
28
31
|
}
|
29
32
|
end
|
30
33
|
def test_load3
|
31
34
|
Configurator.load_xml_string(Three)
|
32
|
-
|
35
|
+
assert_nothing_raised{
|
33
36
|
assert(Foo == 1)
|
34
37
|
assert(Logger.global.level == Foo)
|
35
38
|
}
|
36
39
|
end
|
37
40
|
def test_load4
|
38
|
-
|
41
|
+
assert_nothing_raised {
|
39
42
|
Configurator['logpath'] = '.'
|
40
43
|
Configurator.load_xml_file "xml/testconf.xml"
|
41
44
|
a = Logger['first::second']
|
data/tests/testyaml.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# Define a custom outputter that allows arrays in configuration hash
|
4
|
+
module Log4r
|
5
|
+
class TestYamlOutputter < Outputter
|
6
|
+
# expose array parameter
|
7
|
+
attr_reader :array_param
|
8
|
+
|
9
|
+
def initialize(name, hash = {})
|
10
|
+
@array_param = hash['array_param']
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
class TestYaml < TestCase
|
17
|
+
include Log4r
|
18
|
+
|
19
|
+
def setup
|
20
|
+
@cfg = YamlConfigurator # shorthand
|
21
|
+
@cfg['CUSTOM_DOMAIN'] = 'bar.com'
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_injection
|
25
|
+
assert_nothing_raised("Exception injected") do
|
26
|
+
@cfg.load_yaml_file(File.join(File.dirname(__FILE__),'testyaml_injection.yaml'))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_arrays
|
31
|
+
assert_nothing_raised("Parser couldn't handle arrays in YAML") do
|
32
|
+
@cfg.load_yaml_file(File.join(File.dirname(__FILE__),'testyaml_arrays.yaml'))
|
33
|
+
end
|
34
|
+
log = Logger['mylogger']
|
35
|
+
assert_instance_of(Array, log.outputters.first.array_param, 'Array not loaded properly from YAML')
|
36
|
+
assert_equal('wilma@bar.com', log.outputters.first.array_param[2], '#{}-style parameter interpolation doesn\'t work properly in arrays')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
log4r_config:
|
2
|
+
|
3
|
+
# define all loggers ...
|
4
|
+
loggers:
|
5
|
+
- name : mylogger
|
6
|
+
level : INFO
|
7
|
+
additive : 'false'
|
8
|
+
trace : 'false'
|
9
|
+
outputters:
|
10
|
+
- testyaml
|
11
|
+
|
12
|
+
# define all outputters (incl. formatters)
|
13
|
+
outputters:
|
14
|
+
- type : TestYamlOutputter
|
15
|
+
name : testyaml
|
16
|
+
level : INFO
|
17
|
+
array_param:
|
18
|
+
- fred@foo.com
|
19
|
+
- barney@foo.com
|
20
|
+
- 'wilma@#{CUSTOM_DOMAIN}'
|
21
|
+
formatter:
|
22
|
+
date_pattern: '%y%m%d %H:%M:%S'
|
23
|
+
pattern : '%d %l: %m '
|
24
|
+
type : PatternFormatter
|
25
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
log4r_config:
|
2
|
+
|
3
|
+
# define all loggers ...
|
4
|
+
loggers:
|
5
|
+
- name : mylogger
|
6
|
+
level : INFO
|
7
|
+
additive : 'false'
|
8
|
+
trace : 'false'
|
9
|
+
outputters:
|
10
|
+
- stderr
|
11
|
+
|
12
|
+
# define all outputters (incl. formatters)
|
13
|
+
outputters:
|
14
|
+
- type : StderrOutputter
|
15
|
+
name : stderr
|
16
|
+
level : INFO
|
17
|
+
crash : "'; raise Exception #"
|
18
|
+
formatter:
|
19
|
+
date_pattern: '%y%m%d %H:%M:%S'
|
20
|
+
pattern : '%d %l: %m '
|
21
|
+
type : PatternFormatter
|
22
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log4r
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 7
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 10
|
10
|
+
version: 1.1.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Colby Gutierrez-Kraybill
|
@@ -15,27 +15,49 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
date: 2012-01-02 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: bundler
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 23
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 0
|
32
|
+
- 0
|
33
|
+
version: 1.0.0
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 49
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 8
|
48
|
+
- 7
|
49
|
+
version: 0.8.7
|
50
|
+
type: :development
|
51
|
+
version_requirements: *id002
|
22
52
|
description: "See also: http://logging.apache.org/log4j"
|
23
53
|
email: colby@astro.berkeley.edu
|
24
54
|
executables: []
|
25
55
|
|
26
56
|
extensions: []
|
27
57
|
|
28
|
-
extra_rdoc_files:
|
29
|
-
|
30
|
-
- LICENSE
|
31
|
-
- TODO
|
58
|
+
extra_rdoc_files: []
|
59
|
+
|
32
60
|
files:
|
33
|
-
- LICENSE
|
34
|
-
- LICENSE.LGPLv3
|
35
|
-
- README
|
36
|
-
- INSTALL
|
37
|
-
- Rakefile
|
38
|
-
- TODO
|
39
61
|
- doc/content/contact.html
|
40
62
|
- doc/content/contribute.html
|
41
63
|
- doc/content/index.html
|
@@ -95,6 +117,7 @@ files:
|
|
95
117
|
- lib/log4r/outputter/outputterfactory.rb
|
96
118
|
- lib/log4r/outputter/remoteoutputter.rb
|
97
119
|
- lib/log4r/outputter/rollingfileoutputter.rb
|
120
|
+
- lib/log4r/outputter/scribeoutputter.rb
|
98
121
|
- lib/log4r/outputter/staticoutputter.rb
|
99
122
|
- lib/log4r/outputter/syslogoutputter.rb
|
100
123
|
- lib/log4r/outputter/udpoutputter.rb
|
@@ -102,6 +125,7 @@ files:
|
|
102
125
|
- lib/log4r/rdoc/emailoutputter
|
103
126
|
- lib/log4r/rdoc/formatter
|
104
127
|
- lib/log4r/rdoc/GDC
|
128
|
+
- lib/log4r/rdoc/log4jxmlformatter
|
105
129
|
- lib/log4r/rdoc/log4r
|
106
130
|
- lib/log4r/rdoc/logger
|
107
131
|
- lib/log4r/rdoc/logserver
|
@@ -109,14 +133,17 @@ files:
|
|
109
133
|
- lib/log4r/rdoc/NDC
|
110
134
|
- lib/log4r/rdoc/outputter
|
111
135
|
- lib/log4r/rdoc/patternformatter
|
136
|
+
- lib/log4r/rdoc/scribeoutputter
|
112
137
|
- lib/log4r/rdoc/syslogoutputter
|
113
138
|
- lib/log4r/rdoc/win32eventoutputter
|
114
139
|
- lib/log4r/rdoc/yamlconfigurator
|
115
140
|
- lib/log4r/repository.rb
|
116
141
|
- lib/log4r/staticlogger.rb
|
142
|
+
- lib/log4r/version.rb
|
117
143
|
- lib/log4r/yamlconfigurator.rb
|
118
144
|
- lib/log4r.rb
|
119
145
|
- tests/README
|
146
|
+
- tests/test_helper.rb
|
120
147
|
- tests/testall.rb
|
121
148
|
- tests/testbase.rb
|
122
149
|
- tests/testchainsaw.rb
|
@@ -131,7 +158,9 @@ files:
|
|
131
158
|
- tests/testpatternformatter.rb
|
132
159
|
- tests/testthreads.rb
|
133
160
|
- tests/testxmlconf.rb
|
134
|
-
|
161
|
+
- tests/testyaml.rb
|
162
|
+
- tests/testyaml_arrays.yaml
|
163
|
+
- tests/testyaml_injection.yaml
|
135
164
|
homepage: http://log4r.rubyforge.org
|
136
165
|
licenses: []
|
137
166
|
|
@@ -160,10 +189,28 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
189
|
version: "0"
|
161
190
|
requirements: []
|
162
191
|
|
163
|
-
rubyforge_project:
|
164
|
-
rubygems_version: 1.
|
192
|
+
rubyforge_project:
|
193
|
+
rubygems_version: 1.8.8
|
165
194
|
signing_key:
|
166
195
|
specification_version: 3
|
167
196
|
summary: Log4r, logging framework for ruby
|
168
|
-
test_files:
|
169
|
-
|
197
|
+
test_files:
|
198
|
+
- tests/README
|
199
|
+
- tests/test_helper.rb
|
200
|
+
- tests/testall.rb
|
201
|
+
- tests/testbase.rb
|
202
|
+
- tests/testchainsaw.rb
|
203
|
+
- tests/testconf.xml
|
204
|
+
- tests/testcustom.rb
|
205
|
+
- tests/testformatter.rb
|
206
|
+
- tests/testGDC.rb
|
207
|
+
- tests/testlogger.rb
|
208
|
+
- tests/testMDC.rb
|
209
|
+
- tests/testNDC.rb
|
210
|
+
- tests/testoutputter.rb
|
211
|
+
- tests/testpatternformatter.rb
|
212
|
+
- tests/testthreads.rb
|
213
|
+
- tests/testxmlconf.rb
|
214
|
+
- tests/testyaml.rb
|
215
|
+
- tests/testyaml_arrays.yaml
|
216
|
+
- tests/testyaml_injection.yaml
|