logging 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.txt +11 -0
- data/lib/logging.rb +129 -0
- data/lib/logging/appender.rb +205 -0
- data/lib/logging/appenders/console.rb +47 -0
- data/lib/logging/appenders/file.rb +45 -0
- data/lib/logging/appenders/io.rb +87 -0
- data/lib/logging/appenders/static_appender.rb +58 -0
- data/lib/logging/layout.rb +102 -0
- data/lib/logging/layouts/basic.rb +48 -0
- data/lib/logging/layouts/pattern.rb +320 -0
- data/lib/logging/log_event.rb +52 -0
- data/lib/logging/logger.rb +345 -0
- data/lib/logging/repository.rb +148 -0
- data/lib/logging/root_logger.rb +69 -0
- data/test/appenders/test_console.rb +40 -0
- data/test/appenders/test_file.rb +76 -0
- data/test/appenders/test_io.rb +113 -0
- data/test/benchmark.rb +80 -0
- data/test/layouts/test_basic.rb +46 -0
- data/test/layouts/test_pattern.rb +175 -0
- data/test/setup.rb +45 -0
- data/test/test_all.rb +5 -0
- data/test/test_appender.rb +136 -0
- data/test/test_layout.rb +85 -0
- data/test/test_log_event.rb +81 -0
- data/test/test_logger.rb +472 -0
- data/test/test_logging.rb +121 -0
- data/test/test_repository.rb +113 -0
- data/test/test_root_logger.rb +67 -0
- metadata +75 -0
@@ -0,0 +1,121 @@
|
|
1
|
+
# $Id: test_logging.rb 12 2007-01-14 20:03:40Z tim_pease $
|
2
|
+
|
3
|
+
require 'test/setup.rb'
|
4
|
+
|
5
|
+
module TestLogging
|
6
|
+
|
7
|
+
class TestLogging < Test::Unit::TestCase
|
8
|
+
include LoggingTestCase
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
@levels = ::Logging::LEVELS
|
13
|
+
@lnames = ::Logging::LNAMES
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_define_levels_default
|
17
|
+
empty = {}
|
18
|
+
assert_equal empty, @levels
|
19
|
+
assert_equal empty, @lnames
|
20
|
+
assert_same false, ::Logging.const_defined?(:MAX_LEVEL_LENGTH)
|
21
|
+
|
22
|
+
::Logging::Repository.instance
|
23
|
+
|
24
|
+
assert_equal 5, @levels.length
|
25
|
+
assert_equal 5, @lnames.length
|
26
|
+
assert_equal 5, ::Logging::MAX_LEVEL_LENGTH
|
27
|
+
|
28
|
+
assert_equal 0, @levels['debug']
|
29
|
+
assert_equal 1, @levels['info']
|
30
|
+
assert_equal 2, @levels['warn']
|
31
|
+
assert_equal 3, @levels['error']
|
32
|
+
assert_equal 4, @levels['fatal']
|
33
|
+
|
34
|
+
assert_equal 'DEBUG', @lnames[0]
|
35
|
+
assert_equal 'INFO', @lnames[1]
|
36
|
+
assert_equal 'WARN', @lnames[2]
|
37
|
+
assert_equal 'ERROR', @lnames[3]
|
38
|
+
assert_equal 'FATAL', @lnames[4]
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_define_levels_special
|
42
|
+
empty = {}
|
43
|
+
assert_equal empty, @levels
|
44
|
+
assert_equal empty, @lnames
|
45
|
+
assert_same false, ::Logging.const_defined?(:MAX_LEVEL_LENGTH)
|
46
|
+
|
47
|
+
assert_raise(ArgumentError) {::Logging.define_levels(1, 2, 3, 4)}
|
48
|
+
|
49
|
+
::Logging.define_levels :one, 'two', :THREE, 'FoUr', :sIx
|
50
|
+
|
51
|
+
assert_equal 5, @levels.length
|
52
|
+
assert_equal 5, @lnames.length
|
53
|
+
assert_equal 5, ::Logging::MAX_LEVEL_LENGTH
|
54
|
+
|
55
|
+
assert_equal 0, @levels['one']
|
56
|
+
assert_equal 1, @levels['two']
|
57
|
+
assert_equal 2, @levels['three']
|
58
|
+
assert_equal 3, @levels['four']
|
59
|
+
assert_equal 4, @levels['six']
|
60
|
+
|
61
|
+
assert_equal 'ONE', @lnames[0]
|
62
|
+
assert_equal 'TWO', @lnames[1]
|
63
|
+
assert_equal 'THREE', @lnames[2]
|
64
|
+
assert_equal 'FOUR', @lnames[3]
|
65
|
+
assert_equal 'SIX', @lnames[4]
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_define_levels_all_off
|
69
|
+
empty = {}
|
70
|
+
assert_equal empty, @levels
|
71
|
+
assert_equal empty, @lnames
|
72
|
+
assert_same false, ::Logging.const_defined?(:MAX_LEVEL_LENGTH)
|
73
|
+
|
74
|
+
::Logging.define_levels %w(a b all c off d)
|
75
|
+
|
76
|
+
assert_equal 4, @levels.length
|
77
|
+
assert_equal 4, @lnames.length
|
78
|
+
assert_equal 1, ::Logging::MAX_LEVEL_LENGTH
|
79
|
+
|
80
|
+
assert_equal 0, @levels['a']
|
81
|
+
assert_equal 1, @levels['b']
|
82
|
+
assert_equal 2, @levels['c']
|
83
|
+
assert_equal 3, @levels['d']
|
84
|
+
|
85
|
+
assert_equal 'A', @lnames[0]
|
86
|
+
assert_equal 'B', @lnames[1]
|
87
|
+
assert_equal 'C', @lnames[2]
|
88
|
+
assert_equal 'D', @lnames[3]
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_format_as
|
92
|
+
assert_equal false, ::Logging.const_defined?('OBJ_FORMAT')
|
93
|
+
|
94
|
+
assert_raises(ArgumentError) {::Logging.format_as 'string'}
|
95
|
+
assert_raises(ArgumentError) {::Logging.format_as String}
|
96
|
+
assert_raises(ArgumentError) {::Logging.format_as :what?}
|
97
|
+
|
98
|
+
remove_const = lambda do |const|
|
99
|
+
::Logging.class_eval {remove_const const if const_defined? const}
|
100
|
+
end
|
101
|
+
|
102
|
+
::Logging.format_as :string
|
103
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
104
|
+
assert_equal :string, ::Logging::OBJ_FORMAT
|
105
|
+
remove_const[:OBJ_FORMAT]
|
106
|
+
|
107
|
+
::Logging.format_as :inspect
|
108
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
109
|
+
assert_equal :inspect, ::Logging::OBJ_FORMAT
|
110
|
+
remove_const[:OBJ_FORMAT]
|
111
|
+
|
112
|
+
::Logging.format_as :yaml
|
113
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
114
|
+
assert_equal :yaml, ::Logging::OBJ_FORMAT
|
115
|
+
remove_const[:OBJ_FORMAT]
|
116
|
+
end
|
117
|
+
|
118
|
+
end # class TestLogging
|
119
|
+
end # module TestLogging
|
120
|
+
|
121
|
+
# EOF
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# $Id: test_repository.rb 13 2007-01-15 17:19:37Z tim_pease $
|
2
|
+
|
3
|
+
require 'test/setup.rb'
|
4
|
+
|
5
|
+
module TestLogging
|
6
|
+
|
7
|
+
class TestRepository < Test::Unit::TestCase
|
8
|
+
include LoggingTestCase
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
@repo = ::Logging::Repository.instance
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_instance
|
16
|
+
assert_same @repo, ::Logging::Repository.instance
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_aref
|
20
|
+
root = @repo[:root]
|
21
|
+
assert_same root, @repo[:root]
|
22
|
+
|
23
|
+
a = []
|
24
|
+
::Logging::Logger.new a
|
25
|
+
assert_same @repo['Array'], @repo[Array]
|
26
|
+
assert_same @repo['Array'], @repo[a]
|
27
|
+
|
28
|
+
assert_not_same @repo['Array'], @repo[:root]
|
29
|
+
|
30
|
+
::Logging::Logger.new 'A'
|
31
|
+
::Logging::Logger.new 'A::B'
|
32
|
+
assert_not_same @repo['A'], @repo['A::B']
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_aset
|
36
|
+
root = @repo[:root]
|
37
|
+
@repo[:root] = 'root'
|
38
|
+
assert_not_same root, @repo[:root]
|
39
|
+
|
40
|
+
assert_nil @repo['blah']
|
41
|
+
@repo['blah'] = 'root'
|
42
|
+
assert_equal 'root', @repo['blah']
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_fetch
|
46
|
+
assert_raise(IndexError) {@repo.fetch 'A'}
|
47
|
+
assert_same @repo[:root], @repo.fetch(:root)
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_parent
|
51
|
+
%w(A A::B A::B::C::D A::B::C::E A::B::C::F).each do |name|
|
52
|
+
::Logging::Logger.new(name)
|
53
|
+
end
|
54
|
+
|
55
|
+
assert_same @repo[:root], @repo.parent('A')
|
56
|
+
assert_same @repo['A'], @repo.parent('A::B')
|
57
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C')
|
58
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C::D')
|
59
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C::E')
|
60
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C::F')
|
61
|
+
|
62
|
+
::Logging::Logger.new('A::B::C')
|
63
|
+
|
64
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C')
|
65
|
+
assert_same @repo['A::B::C'], @repo.parent('A::B::C::D')
|
66
|
+
assert_same @repo['A::B::C'], @repo.parent('A::B::C::E')
|
67
|
+
assert_same @repo['A::B::C'], @repo.parent('A::B::C::F')
|
68
|
+
|
69
|
+
::Logging::Logger.new('A::B::C::E::G')
|
70
|
+
|
71
|
+
assert_same @repo['A::B::C::E'], @repo.parent('A::B::C::E::G')
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_children
|
75
|
+
::Logging::Logger.new('A')
|
76
|
+
|
77
|
+
assert_equal [], @repo.children('A')
|
78
|
+
|
79
|
+
::Logging::Logger.new('A::B')
|
80
|
+
a = %w(D E F).map {|name| ::Logging::Logger.new('A::B::C::'+name)}.sort
|
81
|
+
|
82
|
+
assert_equal [@repo['A::B']], @repo.children('A')
|
83
|
+
assert_equal a, @repo.children('A::B')
|
84
|
+
assert_equal a, @repo.children('A::B::C')
|
85
|
+
|
86
|
+
::Logging::Logger.new('A::B::C')
|
87
|
+
|
88
|
+
assert_equal [@repo['A::B::C']], @repo.children('A::B')
|
89
|
+
assert_equal a, @repo.children('A::B::C')
|
90
|
+
|
91
|
+
::Logging::Logger.new('A::B::C::E::G')
|
92
|
+
|
93
|
+
assert_equal a, @repo.children('A::B::C')
|
94
|
+
assert_equal [@repo['A::B::C::E::G']], @repo.children('A::B::C::E')
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_to_key
|
98
|
+
assert_equal :root, @repo.to_key(:root)
|
99
|
+
assert_equal 'Object', @repo.to_key('Object')
|
100
|
+
assert_equal 'Object', @repo.to_key(Object)
|
101
|
+
assert_equal 'Object', @repo.to_key(Object.new)
|
102
|
+
|
103
|
+
assert_equal 'String', @repo.to_key(String)
|
104
|
+
assert_equal 'Array', @repo.to_key([])
|
105
|
+
|
106
|
+
assert_equal 'blah', @repo.to_key('blah')
|
107
|
+
assert_equal :blah, @repo.to_key(:blah)
|
108
|
+
end
|
109
|
+
|
110
|
+
end # class TestRepository
|
111
|
+
end # module TestLogging
|
112
|
+
|
113
|
+
# EOF
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# $Id: test_root_logger.rb 13 2007-01-15 17:19:37Z tim_pease $
|
2
|
+
|
3
|
+
require 'test/setup.rb'
|
4
|
+
require 'stringio'
|
5
|
+
|
6
|
+
module TestLogging
|
7
|
+
|
8
|
+
class TestRootLogger < Test::Unit::TestCase
|
9
|
+
include LoggingTestCase
|
10
|
+
|
11
|
+
def setup
|
12
|
+
super
|
13
|
+
@root = ::Logging::Logger.root
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_level_eq
|
17
|
+
assert_equal 0, @root.level
|
18
|
+
|
19
|
+
assert_raise(ArgumentError) {@root.level = -1}
|
20
|
+
assert_raise(ArgumentError) {@root.level = 6}
|
21
|
+
assert_raise(ArgumentError) {@root.level = Object}
|
22
|
+
assert_raise(ArgumentError) {@root.level = 'bob'}
|
23
|
+
assert_raise(ArgumentError) {@root.level = :wtf}
|
24
|
+
|
25
|
+
@root.level = 'INFO'
|
26
|
+
assert_equal 1, @root.level
|
27
|
+
|
28
|
+
@root.level = :warn
|
29
|
+
assert_equal 2, @root.level
|
30
|
+
|
31
|
+
@root.level = 'error'
|
32
|
+
assert_equal 3, @root.level
|
33
|
+
|
34
|
+
@root.level = 4
|
35
|
+
assert_equal 4, @root.level
|
36
|
+
|
37
|
+
@root.level = :all
|
38
|
+
assert_equal 0, @root.level
|
39
|
+
|
40
|
+
@root.level = 'OFF'
|
41
|
+
assert_equal 5, @root.level
|
42
|
+
|
43
|
+
@root.level = nil
|
44
|
+
assert_equal 0, @root.level
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_name
|
48
|
+
assert_equal 'root', @root.name
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_spaceship
|
52
|
+
logs = %w(
|
53
|
+
A A::B A::B::C A::B::C::D A::B::C::E A::B::C::E::G A::B::C::F
|
54
|
+
).map {|x| ::Logging::Logger[x]}
|
55
|
+
|
56
|
+
logs.each do |log|
|
57
|
+
assert_equal(-1, @root <=> log, "'root' <=> '#{log.name}'")
|
58
|
+
end
|
59
|
+
|
60
|
+
assert_equal 0, @root <=> @root
|
61
|
+
assert_raise(ArgumentError) {@root <=> 'string'}
|
62
|
+
end
|
63
|
+
|
64
|
+
end # class TestRootLogger
|
65
|
+
end # module TestLogging
|
66
|
+
|
67
|
+
# EOF
|
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.0
|
3
|
+
specification_version: 1
|
4
|
+
name: logging
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.0
|
7
|
+
date: 2007-01-15 00:00:00 -07:00
|
8
|
+
summary: A flexible and extendable logging library for Ruby.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
- test
|
12
|
+
email: tim.pease@gmail.com
|
13
|
+
homepage: http://logging.rubyforge.org/
|
14
|
+
rubyforge_project: logging
|
15
|
+
description: Logging is a flexible logging library for use in Ruby programs based on the design of Java's log4j library. It features a hierarchical logging system, custom level names, multiple output destinations per log event, custom formatting, and more.
|
16
|
+
autorequire:
|
17
|
+
default_executable:
|
18
|
+
bindir: bin
|
19
|
+
has_rdoc: true
|
20
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ">"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.0
|
25
|
+
version:
|
26
|
+
platform: ruby
|
27
|
+
signing_key:
|
28
|
+
cert_chain:
|
29
|
+
post_install_message:
|
30
|
+
authors:
|
31
|
+
- Tim Pease
|
32
|
+
files:
|
33
|
+
- README.txt
|
34
|
+
- lib/logging.rb
|
35
|
+
- lib/logging/appender.rb
|
36
|
+
- lib/logging/appenders/console.rb
|
37
|
+
- lib/logging/appenders/file.rb
|
38
|
+
- lib/logging/appenders/io.rb
|
39
|
+
- lib/logging/appenders/static_appender.rb
|
40
|
+
- lib/logging/layout.rb
|
41
|
+
- lib/logging/layouts/basic.rb
|
42
|
+
- lib/logging/layouts/pattern.rb
|
43
|
+
- lib/logging/log_event.rb
|
44
|
+
- lib/logging/logger.rb
|
45
|
+
- lib/logging/repository.rb
|
46
|
+
- lib/logging/root_logger.rb
|
47
|
+
- test/appenders/test_console.rb
|
48
|
+
- test/appenders/test_file.rb
|
49
|
+
- test/appenders/test_io.rb
|
50
|
+
- test/benchmark.rb
|
51
|
+
- test/layouts/test_basic.rb
|
52
|
+
- test/layouts/test_pattern.rb
|
53
|
+
- test/setup.rb
|
54
|
+
- test/test_all.rb
|
55
|
+
- test/test_appender.rb
|
56
|
+
- test/test_layout.rb
|
57
|
+
- test/test_log_event.rb
|
58
|
+
- test/test_logger.rb
|
59
|
+
- test/test_logging.rb
|
60
|
+
- test/test_repository.rb
|
61
|
+
- test/test_root_logger.rb
|
62
|
+
test_files:
|
63
|
+
- test/test_all.rb
|
64
|
+
rdoc_options: []
|
65
|
+
|
66
|
+
extra_rdoc_files: []
|
67
|
+
|
68
|
+
executables: []
|
69
|
+
|
70
|
+
extensions: []
|
71
|
+
|
72
|
+
requirements: []
|
73
|
+
|
74
|
+
dependencies: []
|
75
|
+
|