logging 0.4.0 → 0.5.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.
- data/History.txt +32 -0
- data/Manifest.txt +46 -0
- data/README.txt +85 -11
- data/Rakefile +29 -0
- data/{examples → data}/logging.yaml +0 -0
- data/lib/logging.rb +24 -6
- data/lib/logging/appender.rb +2 -12
- data/lib/logging/appenders/console.rb +3 -7
- data/lib/logging/appenders/file.rb +2 -4
- data/lib/logging/appenders/growl.rb +206 -0
- data/lib/logging/appenders/io.rb +2 -6
- data/lib/logging/appenders/rolling_file.rb +3 -7
- data/lib/logging/appenders/static_appender.rb +1 -5
- data/lib/logging/appenders/syslog.rb +210 -0
- data/lib/logging/config/yaml_configurator.rb +2 -10
- data/lib/logging/layout.rb +2 -7
- data/lib/logging/layouts/basic.rb +1 -3
- data/lib/logging/layouts/pattern.rb +1 -9
- data/lib/logging/log_event.rb +2 -4
- data/lib/logging/logger.rb +4 -19
- data/lib/logging/repository.rb +1 -10
- data/lib/logging/root_logger.rb +1 -5
- data/tasks/doc.rake +43 -0
- data/tasks/gem.rake +85 -0
- data/tasks/manifest.rake +39 -0
- data/tasks/rubyforge.rake +57 -0
- data/tasks/setup.rb +129 -0
- data/tasks/test.rake +35 -0
- data/tasks/website.rake +38 -0
- data/test/appenders/test_syslog.rb +192 -0
- data/test/benchmark.rb +13 -4
- data/test/config/test_yaml_configurator.rb +2 -2
- data/test/setup.rb +23 -21
- data/test/test_logging.rb +2 -2
- data/test/test_repository.rb +3 -5
- metadata +49 -14
- data/test/test_all.rb +0 -5
@@ -0,0 +1,192 @@
|
|
1
|
+
# $Id: test_syslog.rb 46 2007-10-31 14:39:01Z tim_pease $
|
2
|
+
|
3
|
+
require 'test/setup.rb'
|
4
|
+
|
5
|
+
module TestLogging
|
6
|
+
module TestAppenders
|
7
|
+
|
8
|
+
class TestSyslog < Test::Unit::TestCase
|
9
|
+
include LoggingTestCase
|
10
|
+
include ::Syslog::Constants
|
11
|
+
|
12
|
+
def setup
|
13
|
+
super
|
14
|
+
::Logging.define_levels %w(debug info warn error fatal)
|
15
|
+
@levels = ::Logging::LEVELS
|
16
|
+
end
|
17
|
+
|
18
|
+
def teardown
|
19
|
+
::Syslog.close if ::Syslog.opened?
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_append
|
23
|
+
return if RUBY_PLATFORM =~ %r/cygwin/
|
24
|
+
|
25
|
+
stderr = IO::pipe
|
26
|
+
|
27
|
+
pid = fork do
|
28
|
+
stderr[0].close
|
29
|
+
STDERR.reopen(stderr[1])
|
30
|
+
stderr[1].close
|
31
|
+
|
32
|
+
appender = create_syslog
|
33
|
+
event = ::Logging::LogEvent.new('TestLogger', @levels['info'],
|
34
|
+
[1, 2, 3, 4], false)
|
35
|
+
appender.append event
|
36
|
+
event.level = @levels['debug']
|
37
|
+
event.data = 'the big log message'
|
38
|
+
appender.append event
|
39
|
+
|
40
|
+
appender.level = :warn
|
41
|
+
event.level = @levels['info']
|
42
|
+
event.data = 'this message should not get logged'
|
43
|
+
appender.append event
|
44
|
+
event.level = @levels['warn']
|
45
|
+
event.data = 'this is your last warning'
|
46
|
+
appender.append event
|
47
|
+
|
48
|
+
exit!
|
49
|
+
end
|
50
|
+
|
51
|
+
stderr[1].close
|
52
|
+
Process.waitpid(pid)
|
53
|
+
|
54
|
+
assert_equal("syslog_test: INFO TestLogger : <Array> 1234\n",
|
55
|
+
stderr[0].gets)
|
56
|
+
assert_equal("syslog_test: DEBUG TestLogger : the big log message\n",
|
57
|
+
stderr[0].gets)
|
58
|
+
assert_equal("syslog_test: WARN TestLogger : this is your last warning\n",
|
59
|
+
stderr[0].gets)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_append_error
|
63
|
+
appender = create_syslog
|
64
|
+
appender.close
|
65
|
+
|
66
|
+
event = ::Logging::LogEvent.new('TestLogger', @levels['warn'],
|
67
|
+
[1, 2, 3, 4], false)
|
68
|
+
assert_raise(RuntimeError) {appender.append event}
|
69
|
+
assert_equal true, appender.closed?
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_close
|
73
|
+
appender = create_syslog
|
74
|
+
assert_equal false, appender.closed?
|
75
|
+
|
76
|
+
appender.close
|
77
|
+
assert_equal true, appender.closed?
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_concat
|
81
|
+
return if RUBY_PLATFORM =~ %r/cygwin/
|
82
|
+
|
83
|
+
stderr = IO::pipe
|
84
|
+
|
85
|
+
pid = fork do
|
86
|
+
stderr[0].close
|
87
|
+
STDERR.reopen(stderr[1])
|
88
|
+
stderr[1].close
|
89
|
+
|
90
|
+
appender = create_syslog
|
91
|
+
appender << 'this is a test message'
|
92
|
+
appender << 'this is another message'
|
93
|
+
appender << 'some other line'
|
94
|
+
|
95
|
+
exit!
|
96
|
+
end
|
97
|
+
|
98
|
+
stderr[1].close
|
99
|
+
Process.waitpid(pid)
|
100
|
+
|
101
|
+
assert_equal("syslog_test: this is a test message\n", stderr[0].gets)
|
102
|
+
assert_equal("syslog_test: this is another message\n", stderr[0].gets)
|
103
|
+
assert_equal("syslog_test: some other line\n", stderr[0].gets)
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_concat_error
|
107
|
+
appender = create_syslog
|
108
|
+
appender.close
|
109
|
+
|
110
|
+
assert_raise(RuntimeError) {appender << 'oopsy'}
|
111
|
+
assert_equal true, appender.closed?
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_map_eq
|
115
|
+
appender = create_syslog
|
116
|
+
|
117
|
+
assert_equal(
|
118
|
+
[LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERR, LOG_CRIT],
|
119
|
+
get_map_from(appender)
|
120
|
+
)
|
121
|
+
|
122
|
+
appender.map = {
|
123
|
+
:debug => LOG_DEBUG,
|
124
|
+
:info => 'LOG_NOTICE',
|
125
|
+
:warn => :LOG_WARNING,
|
126
|
+
:error => 'log_err',
|
127
|
+
:fatal => :log_alert
|
128
|
+
}
|
129
|
+
|
130
|
+
assert_equal(
|
131
|
+
[LOG_DEBUG, LOG_NOTICE, LOG_WARNING, LOG_ERR, LOG_ALERT],
|
132
|
+
get_map_from(appender)
|
133
|
+
)
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_map_eq_error
|
137
|
+
appender = create_syslog
|
138
|
+
|
139
|
+
# Object is not a valid syslog level
|
140
|
+
assert_raise(ArgumentError) do
|
141
|
+
appender.map = {:debug => Object}
|
142
|
+
end
|
143
|
+
|
144
|
+
# there is no syslog level named "info"
|
145
|
+
# it should be "log_info"
|
146
|
+
assert_raise(NameError) do
|
147
|
+
appender.map = {:info => 'lg_info'}
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_initialize_map
|
152
|
+
appender = ::Logging::Appenders::Syslog.new(
|
153
|
+
'syslog_test',
|
154
|
+
:logopt => ::Syslog::LOG_PERROR | ::Syslog::LOG_NDELAY,
|
155
|
+
:map => {
|
156
|
+
:debug => :log_debug,
|
157
|
+
:info => :log_info,
|
158
|
+
:warn => :log_warning,
|
159
|
+
:error => :log_err,
|
160
|
+
:fatal => :log_alert
|
161
|
+
}
|
162
|
+
)
|
163
|
+
|
164
|
+
assert_equal(
|
165
|
+
[LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERR, LOG_ALERT],
|
166
|
+
get_map_from(appender)
|
167
|
+
)
|
168
|
+
end
|
169
|
+
|
170
|
+
|
171
|
+
private
|
172
|
+
|
173
|
+
def create_syslog
|
174
|
+
layout = ::Logging::Layouts::Pattern.new(:pattern => '%5l %c : %m')
|
175
|
+
::Logging::Appenders::Syslog.new(
|
176
|
+
'syslog_test',
|
177
|
+
:logopt => ::Syslog::LOG_PERROR | ::Syslog::LOG_NDELAY,
|
178
|
+
:facility => ::Syslog::LOG_USER,
|
179
|
+
:layout => layout
|
180
|
+
)
|
181
|
+
end
|
182
|
+
|
183
|
+
def get_map_from( syslog )
|
184
|
+
syslog.instance_variable_get :@map
|
185
|
+
end
|
186
|
+
|
187
|
+
end # class TestIO
|
188
|
+
|
189
|
+
end # module TestAppenders
|
190
|
+
end # module TestLogging
|
191
|
+
|
192
|
+
# EOF
|
data/test/benchmark.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
|
-
# $Id: benchmark.rb
|
1
|
+
# $Id: benchmark.rb 46 2007-10-31 14:39:01Z tim_pease $
|
2
2
|
|
3
3
|
begin
|
4
4
|
require 'logging'
|
5
5
|
rescue LoadError
|
6
|
-
|
7
|
-
|
6
|
+
path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
+
raise if $:.include? path
|
8
|
+
$: << path
|
9
|
+
retry
|
8
10
|
end
|
9
11
|
|
10
12
|
begin
|
11
13
|
require 'rubygems'
|
14
|
+
gem 'log4r'
|
12
15
|
require 'log4r'
|
13
16
|
$log4r = true
|
14
17
|
rescue LoadError
|
@@ -36,7 +39,13 @@ module Logging
|
|
36
39
|
log4r = if $log4r
|
37
40
|
x = ::Log4r::Logger.new('benchmark')
|
38
41
|
x.level = ::Log4r::WARN
|
39
|
-
x.add ::Log4r::IOOutputter.new(
|
42
|
+
x.add ::Log4r::IOOutputter.new(
|
43
|
+
'benchmark', sio,
|
44
|
+
:formatter => ::Log4r::PatternFormatter.new(
|
45
|
+
:pattern => "%.1l, [%d #\#{Process.pid}] %5l : %M\n",
|
46
|
+
:date_pattern => "%Y-%m-%dT%H:%M:%S.\#{Time.now.usec}"
|
47
|
+
)
|
48
|
+
)
|
40
49
|
x
|
41
50
|
end
|
42
51
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_yaml_configurator.rb
|
1
|
+
# $Id: test_yaml_configurator.rb 38 2007-10-26 20:05:51Z tim_pease $
|
2
2
|
|
3
3
|
require 'stringio'
|
4
4
|
require 'yaml'
|
@@ -20,7 +20,7 @@ module TestConfig
|
|
20
20
|
}
|
21
21
|
|
22
22
|
begin
|
23
|
-
fd = File.open('
|
23
|
+
fd = File.open('data/logging.yaml','r')
|
24
24
|
assert_nothing_raised {
|
25
25
|
::Logging::Config::YamlConfigurator.load(fd)
|
26
26
|
}
|
data/test/setup.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
# $Id: setup.rb
|
1
|
+
# $Id: setup.rb 39 2007-10-26 20:22:01Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
4
|
|
5
5
|
begin
|
6
6
|
require 'logging'
|
7
7
|
rescue LoadError
|
8
|
-
|
9
|
-
|
8
|
+
path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
|
+
raise if $:.include? path
|
10
|
+
$: << path
|
11
|
+
retry
|
10
12
|
end
|
11
13
|
|
12
14
|
begin
|
@@ -18,30 +20,30 @@ end
|
|
18
20
|
|
19
21
|
|
20
22
|
module TestLogging
|
21
|
-
|
23
|
+
module LoggingTestCase
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
+
def setup
|
26
|
+
super
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
::Logging.module_eval do
|
29
|
+
::Logging::LEVELS.clear
|
30
|
+
::Logging::LNAMES.clear
|
31
|
+
remove_const :MAX_LEVEL_LENGTH if const_defined? :MAX_LEVEL_LENGTH
|
32
|
+
remove_const :OBJ_FORMAT if const_defined? :OBJ_FORMAT
|
33
|
+
end
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
35
|
+
::Logging::Repository.class_eval do
|
36
|
+
@__instance__ = nil
|
37
|
+
class << self
|
38
|
+
nonce = class << Singleton; self; end
|
39
|
+
define_method(:instance, nonce::FirstInstanceCall)
|
39
40
|
end
|
40
|
-
|
41
|
-
::Logging::Appender.instance_variable_get(:@appenders).clear
|
42
41
|
end
|
42
|
+
|
43
|
+
::Logging::Appender.instance_variable_get(:@appenders).clear
|
44
|
+
end
|
43
45
|
|
44
|
-
|
46
|
+
end # module LoggingTestCase
|
45
47
|
end # module TestLogging
|
46
48
|
|
47
49
|
# EOF
|
data/test/test_logging.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_logging.rb
|
1
|
+
# $Id: test_logging.rb 38 2007-10-26 20:05:51Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
require 'fileutils'
|
@@ -30,7 +30,7 @@ module TestLogging
|
|
30
30
|
def test_configure
|
31
31
|
assert_raise(ArgumentError) {::Logging.configure 'blah.txt'}
|
32
32
|
|
33
|
-
::Logging.configure '
|
33
|
+
::Logging.configure 'data/logging.yaml'
|
34
34
|
|
35
35
|
names = {
|
36
36
|
0 => 'DEB', 1 => 'INF', 2 => 'PRT',
|
data/test/test_repository.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: test_repository.rb
|
1
|
+
# $Id: test_repository.rb 43 2007-10-27 22:22:33Z tim_pease $
|
2
2
|
|
3
3
|
require 'test/setup.rb'
|
4
4
|
|
@@ -43,13 +43,11 @@ module TestLogging
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def test_fetch
|
46
|
-
|
46
|
+
assert @repo.has_logger?(:root)
|
47
47
|
assert_same @repo[:root], @repo.fetch(:root)
|
48
|
-
end
|
49
48
|
|
50
|
-
def test_fetch
|
51
|
-
assert @repo.has_logger?(:root)
|
52
49
|
assert !@repo.has_logger?('A')
|
50
|
+
assert_raise(IndexError) {@repo.fetch 'A'}
|
53
51
|
|
54
52
|
%w(A A::B A::B::C::D A::B::C::E A::B::C::F).each do |name|
|
55
53
|
::Logging::Logger.new(name)
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: logging
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-
|
8
|
-
summary: A flexible and extendable logging library for Ruby
|
6
|
+
version: 0.5.0
|
7
|
+
date: 2007-11-18 00:00:00 -07:00
|
8
|
+
summary: A flexible and extendable logging library for Ruby
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
|
-
- test
|
12
11
|
email: tim.pease@gmail.com
|
13
12
|
homepage: http://logging.rubyforge.org/
|
14
13
|
rubyforge_project: logging
|
@@ -30,15 +29,20 @@ post_install_message:
|
|
30
29
|
authors:
|
31
30
|
- Tim Pease
|
32
31
|
files:
|
32
|
+
- History.txt
|
33
|
+
- Manifest.txt
|
33
34
|
- README.txt
|
34
|
-
-
|
35
|
+
- Rakefile
|
36
|
+
- data/logging.yaml
|
35
37
|
- lib/logging.rb
|
36
38
|
- lib/logging/appender.rb
|
37
39
|
- lib/logging/appenders/console.rb
|
38
40
|
- lib/logging/appenders/file.rb
|
41
|
+
- lib/logging/appenders/growl.rb
|
39
42
|
- lib/logging/appenders/io.rb
|
40
43
|
- lib/logging/appenders/rolling_file.rb
|
41
44
|
- lib/logging/appenders/static_appender.rb
|
45
|
+
- lib/logging/appenders/syslog.rb
|
42
46
|
- lib/logging/config/yaml_configurator.rb
|
43
47
|
- lib/logging/layout.rb
|
44
48
|
- lib/logging/layouts/basic.rb
|
@@ -47,16 +51,23 @@ files:
|
|
47
51
|
- lib/logging/logger.rb
|
48
52
|
- lib/logging/repository.rb
|
49
53
|
- lib/logging/root_logger.rb
|
54
|
+
- tasks/doc.rake
|
55
|
+
- tasks/gem.rake
|
56
|
+
- tasks/manifest.rake
|
57
|
+
- tasks/rubyforge.rake
|
58
|
+
- tasks/setup.rb
|
59
|
+
- tasks/test.rake
|
60
|
+
- tasks/website.rake
|
50
61
|
- test/appenders/test_console.rb
|
51
62
|
- test/appenders/test_file.rb
|
52
63
|
- test/appenders/test_io.rb
|
53
64
|
- test/appenders/test_rolling_file.rb
|
65
|
+
- test/appenders/test_syslog.rb
|
54
66
|
- test/benchmark.rb
|
55
67
|
- test/config/test_yaml_configurator.rb
|
56
68
|
- test/layouts/test_basic.rb
|
57
69
|
- test/layouts/test_pattern.rb
|
58
70
|
- test/setup.rb
|
59
|
-
- test/test_all.rb
|
60
71
|
- test/test_appender.rb
|
61
72
|
- test/test_layout.rb
|
62
73
|
- test/test_log_event.rb
|
@@ -65,16 +76,40 @@ files:
|
|
65
76
|
- test/test_repository.rb
|
66
77
|
- test/test_root_logger.rb
|
67
78
|
test_files:
|
68
|
-
- test/
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
79
|
+
- test/appenders/test_console.rb
|
80
|
+
- test/appenders/test_file.rb
|
81
|
+
- test/appenders/test_io.rb
|
82
|
+
- test/appenders/test_rolling_file.rb
|
83
|
+
- test/appenders/test_syslog.rb
|
84
|
+
- test/config/test_yaml_configurator.rb
|
85
|
+
- test/layouts/test_basic.rb
|
86
|
+
- test/layouts/test_pattern.rb
|
87
|
+
- test/test_appender.rb
|
88
|
+
- test/test_layout.rb
|
89
|
+
- test/test_log_event.rb
|
90
|
+
- test/test_logger.rb
|
91
|
+
- test/test_logging.rb
|
92
|
+
- test/test_repository.rb
|
93
|
+
- test/test_root_logger.rb
|
94
|
+
rdoc_options:
|
95
|
+
- --main
|
96
|
+
- README.txt
|
97
|
+
extra_rdoc_files:
|
98
|
+
- History.txt
|
99
|
+
- README.txt
|
73
100
|
executables: []
|
74
101
|
|
75
102
|
extensions: []
|
76
103
|
|
77
104
|
requirements: []
|
78
105
|
|
79
|
-
dependencies:
|
80
|
-
|
106
|
+
dependencies:
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: rake
|
109
|
+
version_requirement:
|
110
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 0.7.3
|
115
|
+
version:
|