sml-log4r 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/content/contact.html +22 -0
- data/doc/content/contribute.html +21 -0
- data/doc/content/index.html +90 -0
- data/doc/content/license.html +56 -0
- data/doc/content/manual.html +449 -0
- data/doc/dev/README.developers +40 -0
- data/doc/dev/checklist +14 -0
- data/doc/dev/things-to-do +2 -0
- data/doc/images/crush/logo2.png +0 -0
- data/doc/images/log4r-logo.png +0 -0
- data/doc/images/logo2.png +0 -0
- data/doc/log4r.css +111 -0
- data/doc/old/manual.html +348 -0
- data/doc/templates/main.html +147 -0
- data/examples/README +19 -0
- data/examples/customlevels.rb +34 -0
- data/examples/fileroll.rb +40 -0
- data/examples/log4r_yaml.yaml +0 -0
- data/examples/logclient.rb +25 -0
- data/examples/logserver.rb +18 -0
- data/examples/moderate.xml +29 -0
- data/examples/moderateconfig.rb +66 -0
- data/examples/myformatter.rb +23 -0
- data/examples/outofthebox.rb +21 -0
- data/examples/rrconfig.xml +63 -0
- data/examples/rrsetup.rb +42 -0
- data/examples/simpleconfig.rb +39 -0
- data/examples/xmlconfig.rb +25 -0
- data/examples/yaml.rb +30 -0
- data/src/log4r.rb +17 -0
- data/src/log4r/base.rb +74 -0
- data/src/log4r/config.rb +9 -0
- data/src/log4r/configurator.rb +224 -0
- data/src/log4r/formatter/formatter.rb +105 -0
- data/src/log4r/formatter/patternformatter.rb +108 -0
- data/src/log4r/lib/drbloader.rb +52 -0
- data/src/log4r/lib/xmlloader.rb +24 -0
- data/src/log4r/logevent.rb +28 -0
- data/src/log4r/logger.rb +194 -0
- data/src/log4r/loggerfactory.rb +89 -0
- data/src/log4r/logserver.rb +28 -0
- data/src/log4r/outputter/consoleoutputters.rb +18 -0
- data/src/log4r/outputter/datefileoutputter.rb +110 -0
- data/src/log4r/outputter/emailoutputter.rb +115 -0
- data/src/log4r/outputter/fileoutputter.rb +49 -0
- data/src/log4r/outputter/iooutputter.rb +55 -0
- data/src/log4r/outputter/outputter.rb +132 -0
- data/src/log4r/outputter/outputterfactory.rb +59 -0
- data/src/log4r/outputter/remoteoutputter.rb +40 -0
- data/src/log4r/outputter/rollingfileoutputter.rb +126 -0
- data/src/log4r/outputter/staticoutputter.rb +30 -0
- data/src/log4r/outputter/syslogoutputter.rb +75 -0
- data/src/log4r/rdoc/configurator +243 -0
- data/src/log4r/rdoc/emailoutputter +103 -0
- data/src/log4r/rdoc/formatter +39 -0
- data/src/log4r/rdoc/log4r +89 -0
- data/src/log4r/rdoc/logger +175 -0
- data/src/log4r/rdoc/logserver +85 -0
- data/src/log4r/rdoc/outputter +108 -0
- data/src/log4r/rdoc/patternformatter +128 -0
- data/src/log4r/rdoc/syslogoutputter +29 -0
- data/src/log4r/rdoc/yamlconfigurator +20 -0
- data/src/log4r/repository.rb +65 -0
- data/src/log4r/staticlogger.rb +49 -0
- data/src/log4r/yamlconfigurator.rb +0 -0
- data/tests/include.rb +7 -0
- data/tests/runtest.rb +6 -0
- data/tests/testbase.rb +45 -0
- data/tests/testcustom.rb +33 -0
- data/tests/testdefault.rb +25 -0
- data/tests/testformatter.rb +29 -0
- data/tests/testlogger.rb +198 -0
- data/tests/testoutputter.rb +112 -0
- data/tests/testpatternformatter.rb +26 -0
- data/tests/testxmlconf.rb +51 -0
- data/tests/xml/testconf.xml +37 -0
- metadata +140 -0
@@ -0,0 +1,112 @@
|
|
1
|
+
require "include"
|
2
|
+
|
3
|
+
class TestOutputter < TestCase
|
4
|
+
def test_validation
|
5
|
+
assert_exception(ArgumentError) { Outputter.new }
|
6
|
+
assert_exception(ArgumentError) { Outputter.new 'fonda', :level=>-10}
|
7
|
+
assert_exception(TypeError) { Outputter.new 'fonda', :formatter=>-10}
|
8
|
+
end
|
9
|
+
def test_io
|
10
|
+
assert_no_exception {
|
11
|
+
IOOutputter.new('foo3', $stdout)
|
12
|
+
IOOutputter.new('foo4', $stderr)
|
13
|
+
}
|
14
|
+
f = File.new("junk/tmpx.log", "w")
|
15
|
+
o = IOOutputter.new('asdf', f)
|
16
|
+
o.close
|
17
|
+
assert(f.closed? == true)
|
18
|
+
assert(o.level == OFF)
|
19
|
+
end
|
20
|
+
def test_repository
|
21
|
+
assert( Outputter['foo3'].type == IOOutputter )
|
22
|
+
assert( Outputter['foo4'].type == IOOutputter )
|
23
|
+
assert( Outputter['asdf'].type == IOOutputter )
|
24
|
+
end
|
25
|
+
def test_validation_and_creation
|
26
|
+
assert_no_exception {
|
27
|
+
StdoutOutputter.new('out', 'level'=>DEBUG)
|
28
|
+
FileOutputter.new('file', 'filename'=>'junk/test', :trunc=>true)
|
29
|
+
}
|
30
|
+
a = StdoutOutputter.new 'out2'
|
31
|
+
assert(a.level == Logger.root.level)
|
32
|
+
assert(a.formatter.type == DefaultFormatter)
|
33
|
+
b = StdoutOutputter.new('ook', :level => DEBUG, :formatter => Formatter)
|
34
|
+
assert(b.level == DEBUG)
|
35
|
+
assert(b.formatter.type == Formatter)
|
36
|
+
c = StdoutOutputter.new('akk', :formatter => Formatter)
|
37
|
+
assert(c.level == Logger.root.level)
|
38
|
+
assert(c.formatter.type == Formatter)
|
39
|
+
c = StderrOutputter.new('iikk', :level => OFF)
|
40
|
+
assert(c.level == OFF)
|
41
|
+
assert(c.formatter.type == DefaultFormatter)
|
42
|
+
o = StderrOutputter.new 'ik'
|
43
|
+
assert_no_exception(TypeError) { o.formatter = DefaultFormatter }
|
44
|
+
assert_equals(o.formatter.type, DefaultFormatter)
|
45
|
+
end
|
46
|
+
# test the resource= bounds
|
47
|
+
def test_boundaries
|
48
|
+
o = StderrOutputter.new('ak', :formatter => Formatter)
|
49
|
+
assert_exception(TypeError) { o.formatter = nil }
|
50
|
+
assert_exception(TypeError) { o.formatter = String }
|
51
|
+
assert_exception(TypeError) { o.formatter = "bogus" }
|
52
|
+
assert_exception(TypeError) { o.formatter = -3 }
|
53
|
+
# the formatter should be preserved
|
54
|
+
assert(o.formatter.type == Formatter)
|
55
|
+
end
|
56
|
+
def test_file
|
57
|
+
assert_exception(TypeError) { FileOutputter.new 'f' }
|
58
|
+
assert_exception(TypeError) { FileOutputter.new('fa', :filename => DEBUG) }
|
59
|
+
assert_exception(TypeError) { FileOutputter.new('fo', :filename => nil) }
|
60
|
+
assert_no_exception {
|
61
|
+
FileOutputter.new('fi', :filename => './junk/tmp')
|
62
|
+
FileOutputter.new('fum', :filename=>'./junk/tmp', :trunc => "true")
|
63
|
+
}
|
64
|
+
fo = FileOutputter.new('food', :filename => './junk/tmp', :trunc => false)
|
65
|
+
assert(fo.trunc == false)
|
66
|
+
assert(fo.filename == './junk/tmp')
|
67
|
+
assert(fo.closed? == false)
|
68
|
+
fo.close
|
69
|
+
assert(fo.closed? == true)
|
70
|
+
assert(fo.level == OFF)
|
71
|
+
end
|
72
|
+
# test the dynamic definition of outputter log messages
|
73
|
+
def test_log_methods
|
74
|
+
o = StderrOutputter.new('so1', :level => WARN )
|
75
|
+
# test to see if all of the methods are defined
|
76
|
+
for mname in LNAMES
|
77
|
+
next if mname == 'OFF' || mname == 'ALL'
|
78
|
+
assert_respond_to(mname.downcase, o, "Test respond to #{mname.to_s}")
|
79
|
+
end
|
80
|
+
return # cuz the rest is borked
|
81
|
+
# we rely on BasicFormatter's inability to reference a nil Logger to test
|
82
|
+
# the log methods. Everything from WARN to FATAL should choke.
|
83
|
+
event = LogEvent.new(nil, nil, nil, nil)
|
84
|
+
assert_no_exception { o.debug event }
|
85
|
+
assert_no_exception { o.info event }
|
86
|
+
assert_exception(NameError) { o.warn event }
|
87
|
+
assert_exception(NameError) { o.error event }
|
88
|
+
assert_exception(NameError) { o.fatal event }
|
89
|
+
# now let's dynamically change the level and repeat
|
90
|
+
o.level = ERROR
|
91
|
+
assert_no_exception { o.debug event}
|
92
|
+
assert_no_exception { o.info event}
|
93
|
+
assert_no_exception { o.warn event}
|
94
|
+
assert_exception(NameError) { o.error event}
|
95
|
+
assert_exception(NameError) { o.fatal event}
|
96
|
+
end
|
97
|
+
def test_only_at_validation
|
98
|
+
o = StdoutOutputter.new 'so2'
|
99
|
+
assert_exception(ArgumentError) { o.only_at }
|
100
|
+
assert_exception(ArgumentError) { o.only_at ALL }
|
101
|
+
assert_exception(TypeError) { o.only_at OFF }
|
102
|
+
assert_no_exception { o.only_at DEBUG, ERROR }
|
103
|
+
return # cuz the rest is borked
|
104
|
+
# test the methods as before
|
105
|
+
event = LogEvent.new(nil,nil,nil,nil)
|
106
|
+
assert_exception(NameError) { o.debug event}
|
107
|
+
assert_exception(NameError) { o.error event}
|
108
|
+
assert_no_exception { o.warn event}
|
109
|
+
assert_no_exception { o.info event}
|
110
|
+
assert_no_exception { o.fatal event}
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "include"
|
2
|
+
require "runit/cui/testrunner"
|
3
|
+
|
4
|
+
class TestPatternFormatter < TestCase
|
5
|
+
def test_pattern
|
6
|
+
l = Logger.new 'test::this::that'
|
7
|
+
l.trace = true
|
8
|
+
o = StdoutOutputter.new 'test'
|
9
|
+
l.add o
|
10
|
+
assert_no_exception {
|
11
|
+
f = PatternFormatter.new :pattern=> "%d %6l [%C]%c %% %-40.30M"
|
12
|
+
#:date_pattern=> "%Y"
|
13
|
+
#:date_method => :usec
|
14
|
+
Outputter['test'].formatter = f
|
15
|
+
l.debug "And this?"
|
16
|
+
l.info "How's this?"
|
17
|
+
l.error "and a really freaking huge line which we hope will be trimmed?"
|
18
|
+
e = ArgumentError.new("something barfed")
|
19
|
+
e.set_backtrace Array.new(5, "trace junk at thisfile.rb 154")
|
20
|
+
l.fatal e
|
21
|
+
l.info [1, 3, 5]
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
CUI::TestRunner.run(TestPatternFormatter.suite)
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require "include"
|
2
|
+
require "runit/cui/testrunner"
|
3
|
+
|
4
|
+
One=<<-EOX
|
5
|
+
<log4r_config><pre_config><custom_levels> Foo </custom_levels>
|
6
|
+
</pre_config></log4r_config>
|
7
|
+
EOX
|
8
|
+
Two=<<-EOX
|
9
|
+
<log4r_config><pre_config><global level="DEBUG"/></pre_config></log4r_config>
|
10
|
+
EOX
|
11
|
+
Three=<<-EOX
|
12
|
+
<log4r_config><pre_config><custom_levels>Foo</custom_levels>
|
13
|
+
<global level="Foo"/></pre_config>
|
14
|
+
</log4r_config>
|
15
|
+
EOX
|
16
|
+
|
17
|
+
# must be run independently
|
18
|
+
class TestXmlConf < TestCase
|
19
|
+
def test_load1
|
20
|
+
Configurator.load_xml_string(One)
|
21
|
+
assert_no_exception{
|
22
|
+
assert(Foo == 1)
|
23
|
+
assert(Logger.global.level == ALL)
|
24
|
+
}
|
25
|
+
end
|
26
|
+
def test_load2
|
27
|
+
Configurator.load_xml_string(Two)
|
28
|
+
assert_no_exception{
|
29
|
+
assert(Logger.global.level == DEBUG)
|
30
|
+
}
|
31
|
+
end
|
32
|
+
def test_load3
|
33
|
+
Configurator.load_xml_string(Three)
|
34
|
+
assert_no_exception{
|
35
|
+
assert(Foo == 1)
|
36
|
+
assert(Logger.global.level == Foo)
|
37
|
+
}
|
38
|
+
end
|
39
|
+
def test_load4
|
40
|
+
assert_no_exception {
|
41
|
+
Configurator['logpath'] = '.'
|
42
|
+
Configurator.load_xml_file "xml/testconf.xml"
|
43
|
+
a = Logger['first::second']
|
44
|
+
a.bing "what the heck"
|
45
|
+
}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
if __FILE__ == $0
|
50
|
+
CUI::TestRunner.run(TestXmlConf.new("test_load#{ARGV[0]}"))
|
51
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<test>
|
2
|
+
<log4r_config>
|
3
|
+
|
4
|
+
<pre_config>
|
5
|
+
<custom_levels>Foo, Bar,Baz, Bing</custom_levels>
|
6
|
+
<global level="Foo"/>
|
7
|
+
<parameters>
|
8
|
+
<mypattern>[%l] %d %t - %m</mypattern>
|
9
|
+
</parameters>
|
10
|
+
<parameter name="datem" value="usec"/>
|
11
|
+
</pre_config>
|
12
|
+
|
13
|
+
<!-- level and formatter are optional, -->
|
14
|
+
<outputter name="SO" type="StdoutOutputter">
|
15
|
+
<level>Foo</level>
|
16
|
+
<formatter type="Log4r::PatternFormatter">
|
17
|
+
<pattern>%d %c %l> %m</pattern>
|
18
|
+
<date_method>#{datem}</date_method>
|
19
|
+
</formatter>
|
20
|
+
</outputter>
|
21
|
+
<outputter name="SE" type="StderrOutputter" level="Baz">
|
22
|
+
<formatter type="PatternFormatter" pattern="#{mypattern}">
|
23
|
+
<date_pattern>%H:%S</date_pattern>
|
24
|
+
</formatter>
|
25
|
+
</outputter>
|
26
|
+
<outputter name="F" type="FileOutputter">
|
27
|
+
<filename>#{logpath}/junk/foo.log</filename>
|
28
|
+
<trunc>true</trunc>
|
29
|
+
<only_at>Foo, Bar, Bing</only_at>
|
30
|
+
</outputter>
|
31
|
+
<!-- optional level, additive and outputters -->
|
32
|
+
<logger name="first::second" level="Bar" additive="false">
|
33
|
+
<trace>true</trace>
|
34
|
+
<outputters>SO, SE, F, stdout, stderr</outputters>
|
35
|
+
</logger>
|
36
|
+
</log4r_config>
|
37
|
+
</test>
|
metadata
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sml-log4r
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.6
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Leon Torres
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-05-16 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Log4r is a comprehensive and flexible logging library written in Ruby for use in Ruby programs. It features a hierarchical logging system of any number of levels, custom level names, logger inheritance, multiple output destinations per log event, execution tracing, custom formatting, thread safteyness, XML and YAML configuration, and more.
|
17
|
+
email: leon(at)ugcs.caltech.edu
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- doc/content
|
26
|
+
- doc/content/contact.html
|
27
|
+
- doc/content/contribute.html
|
28
|
+
- doc/content/index.html
|
29
|
+
- doc/content/license.html
|
30
|
+
- doc/content/manual.html
|
31
|
+
- doc/dev
|
32
|
+
- doc/dev/checklist
|
33
|
+
- doc/dev/README.developers
|
34
|
+
- doc/dev/things-to-do
|
35
|
+
- doc/images
|
36
|
+
- doc/images/crush
|
37
|
+
- doc/images/crush/logo2.png
|
38
|
+
- doc/images/log4r-logo.png
|
39
|
+
- doc/images/logo2.png
|
40
|
+
- doc/log4r.css
|
41
|
+
- doc/old
|
42
|
+
- doc/old/manual.html
|
43
|
+
- doc/templates
|
44
|
+
- doc/templates/main.html
|
45
|
+
- examples/customlevels.rb
|
46
|
+
- examples/fileroll.rb
|
47
|
+
- examples/log4r_yaml.yaml
|
48
|
+
- examples/logclient.rb
|
49
|
+
- examples/logserver.rb
|
50
|
+
- examples/moderate.xml
|
51
|
+
- examples/moderateconfig.rb
|
52
|
+
- examples/myformatter.rb
|
53
|
+
- examples/outofthebox.rb
|
54
|
+
- examples/README
|
55
|
+
- examples/rrconfig.xml
|
56
|
+
- examples/rrsetup.rb
|
57
|
+
- examples/simpleconfig.rb
|
58
|
+
- examples/xmlconfig.rb
|
59
|
+
- examples/yaml.rb
|
60
|
+
- src/log4r
|
61
|
+
- src/log4r/base.rb
|
62
|
+
- src/log4r/config.rb
|
63
|
+
- src/log4r/configurator.rb
|
64
|
+
- src/log4r/formatter
|
65
|
+
- src/log4r/formatter/formatter.rb
|
66
|
+
- src/log4r/formatter/patternformatter.rb
|
67
|
+
- src/log4r/lib
|
68
|
+
- src/log4r/lib/drbloader.rb
|
69
|
+
- src/log4r/lib/xmlloader.rb
|
70
|
+
- src/log4r/logevent.rb
|
71
|
+
- src/log4r/logger.rb
|
72
|
+
- src/log4r/loggerfactory.rb
|
73
|
+
- src/log4r/logserver.rb
|
74
|
+
- src/log4r/outputter
|
75
|
+
- src/log4r/outputter/consoleoutputters.rb
|
76
|
+
- src/log4r/outputter/datefileoutputter.rb
|
77
|
+
- src/log4r/outputter/emailoutputter.rb
|
78
|
+
- src/log4r/outputter/fileoutputter.rb
|
79
|
+
- src/log4r/outputter/iooutputter.rb
|
80
|
+
- src/log4r/outputter/outputter.rb
|
81
|
+
- src/log4r/outputter/outputterfactory.rb
|
82
|
+
- src/log4r/outputter/remoteoutputter.rb
|
83
|
+
- src/log4r/outputter/rollingfileoutputter.rb
|
84
|
+
- src/log4r/outputter/staticoutputter.rb
|
85
|
+
- src/log4r/outputter/syslogoutputter.rb
|
86
|
+
- src/log4r/rdoc
|
87
|
+
- src/log4r/rdoc/configurator
|
88
|
+
- src/log4r/rdoc/emailoutputter
|
89
|
+
- src/log4r/rdoc/formatter
|
90
|
+
- src/log4r/rdoc/log4r
|
91
|
+
- src/log4r/rdoc/logger
|
92
|
+
- src/log4r/rdoc/logserver
|
93
|
+
- src/log4r/rdoc/outputter
|
94
|
+
- src/log4r/rdoc/patternformatter
|
95
|
+
- src/log4r/rdoc/syslogoutputter
|
96
|
+
- src/log4r/rdoc/yamlconfigurator
|
97
|
+
- src/log4r/repository.rb
|
98
|
+
- src/log4r/staticlogger.rb
|
99
|
+
- src/log4r/yamlconfigurator.rb
|
100
|
+
- src/log4r.rb
|
101
|
+
- tests/include.rb
|
102
|
+
- tests/runtest.rb
|
103
|
+
- tests/testbase.rb
|
104
|
+
- tests/testcustom.rb
|
105
|
+
- tests/testdefault.rb
|
106
|
+
- tests/testformatter.rb
|
107
|
+
- tests/testlogger.rb
|
108
|
+
- tests/testoutputter.rb
|
109
|
+
- tests/testpatternformatter.rb
|
110
|
+
- tests/testxmlconf.rb
|
111
|
+
- tests/xml
|
112
|
+
- tests/xml/testconf.xml
|
113
|
+
has_rdoc: true
|
114
|
+
homepage: http://log4r.sourceforge.net
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
|
118
|
+
require_paths:
|
119
|
+
- src
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: "0"
|
125
|
+
version:
|
126
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: "0"
|
131
|
+
version:
|
132
|
+
requirements: []
|
133
|
+
|
134
|
+
rubyforge_project: log4r
|
135
|
+
rubygems_version: 1.2.0
|
136
|
+
signing_key:
|
137
|
+
specification_version: 2
|
138
|
+
summary: Log4r is a comprehensive and flexible logging library for Ruby.
|
139
|
+
test_files: []
|
140
|
+
|