sml-log4r 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. data/doc/content/contact.html +22 -0
  2. data/doc/content/contribute.html +21 -0
  3. data/doc/content/index.html +90 -0
  4. data/doc/content/license.html +56 -0
  5. data/doc/content/manual.html +449 -0
  6. data/doc/dev/README.developers +40 -0
  7. data/doc/dev/checklist +14 -0
  8. data/doc/dev/things-to-do +2 -0
  9. data/doc/images/crush/logo2.png +0 -0
  10. data/doc/images/log4r-logo.png +0 -0
  11. data/doc/images/logo2.png +0 -0
  12. data/doc/log4r.css +111 -0
  13. data/doc/old/manual.html +348 -0
  14. data/doc/templates/main.html +147 -0
  15. data/examples/README +19 -0
  16. data/examples/customlevels.rb +34 -0
  17. data/examples/fileroll.rb +40 -0
  18. data/examples/log4r_yaml.yaml +0 -0
  19. data/examples/logclient.rb +25 -0
  20. data/examples/logserver.rb +18 -0
  21. data/examples/moderate.xml +29 -0
  22. data/examples/moderateconfig.rb +66 -0
  23. data/examples/myformatter.rb +23 -0
  24. data/examples/outofthebox.rb +21 -0
  25. data/examples/rrconfig.xml +63 -0
  26. data/examples/rrsetup.rb +42 -0
  27. data/examples/simpleconfig.rb +39 -0
  28. data/examples/xmlconfig.rb +25 -0
  29. data/examples/yaml.rb +30 -0
  30. data/src/log4r.rb +17 -0
  31. data/src/log4r/base.rb +74 -0
  32. data/src/log4r/config.rb +9 -0
  33. data/src/log4r/configurator.rb +224 -0
  34. data/src/log4r/formatter/formatter.rb +105 -0
  35. data/src/log4r/formatter/patternformatter.rb +108 -0
  36. data/src/log4r/lib/drbloader.rb +52 -0
  37. data/src/log4r/lib/xmlloader.rb +24 -0
  38. data/src/log4r/logevent.rb +28 -0
  39. data/src/log4r/logger.rb +194 -0
  40. data/src/log4r/loggerfactory.rb +89 -0
  41. data/src/log4r/logserver.rb +28 -0
  42. data/src/log4r/outputter/consoleoutputters.rb +18 -0
  43. data/src/log4r/outputter/datefileoutputter.rb +110 -0
  44. data/src/log4r/outputter/emailoutputter.rb +115 -0
  45. data/src/log4r/outputter/fileoutputter.rb +49 -0
  46. data/src/log4r/outputter/iooutputter.rb +55 -0
  47. data/src/log4r/outputter/outputter.rb +132 -0
  48. data/src/log4r/outputter/outputterfactory.rb +59 -0
  49. data/src/log4r/outputter/remoteoutputter.rb +40 -0
  50. data/src/log4r/outputter/rollingfileoutputter.rb +126 -0
  51. data/src/log4r/outputter/staticoutputter.rb +30 -0
  52. data/src/log4r/outputter/syslogoutputter.rb +75 -0
  53. data/src/log4r/rdoc/configurator +243 -0
  54. data/src/log4r/rdoc/emailoutputter +103 -0
  55. data/src/log4r/rdoc/formatter +39 -0
  56. data/src/log4r/rdoc/log4r +89 -0
  57. data/src/log4r/rdoc/logger +175 -0
  58. data/src/log4r/rdoc/logserver +85 -0
  59. data/src/log4r/rdoc/outputter +108 -0
  60. data/src/log4r/rdoc/patternformatter +128 -0
  61. data/src/log4r/rdoc/syslogoutputter +29 -0
  62. data/src/log4r/rdoc/yamlconfigurator +20 -0
  63. data/src/log4r/repository.rb +65 -0
  64. data/src/log4r/staticlogger.rb +49 -0
  65. data/src/log4r/yamlconfigurator.rb +0 -0
  66. data/tests/include.rb +7 -0
  67. data/tests/runtest.rb +6 -0
  68. data/tests/testbase.rb +45 -0
  69. data/tests/testcustom.rb +33 -0
  70. data/tests/testdefault.rb +25 -0
  71. data/tests/testformatter.rb +29 -0
  72. data/tests/testlogger.rb +198 -0
  73. data/tests/testoutputter.rb +112 -0
  74. data/tests/testpatternformatter.rb +26 -0
  75. data/tests/testxmlconf.rb +51 -0
  76. data/tests/xml/testconf.xml +37 -0
  77. 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&gt; %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
+