rjack-slf4j 1.5.11.0-java
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.rdoc +42 -0
- data/Manifest.static +13 -0
- data/Manifest.txt +29 -0
- data/README.rdoc +70 -0
- data/Rakefile +88 -0
- data/assembly.xml +24 -0
- data/lib/rjack-slf4j/base.rb +42 -0
- data/lib/rjack-slf4j/jcl-over-slf4j-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/jcl-over-slf4j.rb +2 -0
- data/lib/rjack-slf4j/jcl.rb +2 -0
- data/lib/rjack-slf4j/jdk14.rb +2 -0
- data/lib/rjack-slf4j/jul-to-slf4j-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/jul-to-slf4j.rb +20 -0
- data/lib/rjack-slf4j/jul.rb +77 -0
- data/lib/rjack-slf4j/log4j-over-slf4j-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/log4j-over-slf4j.rb +2 -0
- data/lib/rjack-slf4j/log4j12.rb +2 -0
- data/lib/rjack-slf4j/mdc.rb +47 -0
- data/lib/rjack-slf4j/nop.rb +2 -0
- data/lib/rjack-slf4j/simple.rb +2 -0
- data/lib/rjack-slf4j/slf4j-api-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/slf4j-jcl-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/slf4j-jdk14-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/slf4j-log4j12-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/slf4j-nop-1.5.11.jar +0 -0
- data/lib/rjack-slf4j/slf4j-simple-1.5.11.jar +0 -0
- data/lib/rjack-slf4j.rb +265 -0
- data/pom.xml +104 -0
- data/test/test_slf4j.rb +146 -0
- metadata +107 -0
data/History.rdoc
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
=== 1.5.11.0 (2010-3-6)
|
2
|
+
* Upgraded to SLF4J 1.5.11
|
3
|
+
* Set gem platform to java
|
4
|
+
* SLF4J.ruby_to_java_logger_name renamed/aliased SLF4J.to_log_name
|
5
|
+
* Upgraded to tarpit ~> 1.2.0
|
6
|
+
|
7
|
+
=== 1.5.10.0 (2009-12-19)
|
8
|
+
* Upgraded to SLF4J 1.5.10
|
9
|
+
* Upgraded to tarpit-1.1.0 (gemcutter)
|
10
|
+
|
11
|
+
=== 1.5.8.1 (2009-10-10)
|
12
|
+
* Renamed gem rjack-slf4j and as module RJack::SLF4J (with ::SLF4J
|
13
|
+
alias kept for backward compatibility.)
|
14
|
+
* Use rjack-tarpit for build.
|
15
|
+
* Upgraded to SLF4J 1.5.8
|
16
|
+
* Added support for logging exceptions from ruby, with special
|
17
|
+
handling of NativeException#cause
|
18
|
+
* Added support for converting from ruby style "Module::Class" to java
|
19
|
+
"module.Class" name in SLF4J::Logger.new
|
20
|
+
* Added SLF4J::MDC (Mapped Diagnostic Context) support module
|
21
|
+
* Added Logger.java_logger access
|
22
|
+
|
23
|
+
=== 1.5.6.3 (2009-4-25)
|
24
|
+
* Added SLF4J::JUL for controlling java.util.logging, including
|
25
|
+
JUL.replace_root_handlers which removes all existing handlers and
|
26
|
+
add SLF4JBridgeHandler for exclusive routing to SLF4J for use with
|
27
|
+
'jul-to-slf4j'.
|
28
|
+
* Added require 'slf4j' to each adapter loader.
|
29
|
+
* Use rdoc 2.4.3 and hoe 1.12.2 for build.
|
30
|
+
|
31
|
+
=== 1.5.6.2 (2009-4-4)
|
32
|
+
* Fixed previously lost rdoc due to base vs slf4j.rb manifest order.
|
33
|
+
|
34
|
+
=== 1.5.6.1 (2008-12-6)
|
35
|
+
* Upgraded to SLF4J 1.5.6
|
36
|
+
* SLF4JBase -rename-> SLF4J
|
37
|
+
|
38
|
+
=== 1.5.5.1 (2008-11-1)
|
39
|
+
* Upgraded to SLF4J 1.5.5
|
40
|
+
|
41
|
+
=== 1.5.3.1 (2008-10-8)
|
42
|
+
* Initial release based on SLF4J 1.5.3
|
data/Manifest.static
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
Manifest.static
|
2
|
+
Manifest.txt
|
3
|
+
README.rdoc
|
4
|
+
History.rdoc
|
5
|
+
Rakefile
|
6
|
+
pom.xml
|
7
|
+
assembly.xml
|
8
|
+
lib/rjack-slf4j/base.rb
|
9
|
+
lib/rjack-slf4j.rb
|
10
|
+
lib/rjack-slf4j/jul-to-slf4j.rb
|
11
|
+
lib/rjack-slf4j/jul.rb
|
12
|
+
lib/rjack-slf4j/mdc.rb
|
13
|
+
test/test_slf4j.rb
|
14
|
+
lib/rjack-slf4j/jcl-over-slf4j.rb
|
15
|
+
lib/rjack-slf4j/jcl.rb
|
16
|
+
lib/rjack-slf4j/jdk14.rb
|
17
|
+
lib/rjack-slf4j/log4j-over-slf4j.rb
|
18
|
+
lib/rjack-slf4j/log4j12.rb
|
19
|
+
lib/rjack-slf4j/nop.rb
|
20
|
+
lib/rjack-slf4j/simple.rb
|
21
|
+
lib/rjack-slf4j/jcl-over-slf4j-1.5.11.jar
|
22
|
+
lib/rjack-slf4j/jul-to-slf4j-1.5.11.jar
|
23
|
+
lib/rjack-slf4j/log4j-over-slf4j-1.5.11.jar
|
24
|
+
lib/rjack-slf4j/slf4j-api-1.5.11.jar
|
25
|
+
lib/rjack-slf4j/slf4j-jcl-1.5.11.jar
|
26
|
+
lib/rjack-slf4j/slf4j-jdk14-1.5.11.jar
|
27
|
+
lib/rjack-slf4j/slf4j-log4j12-1.5.11.jar
|
28
|
+
lib/rjack-slf4j/slf4j-nop-1.5.11.jar
|
29
|
+
lib/rjack-slf4j/slf4j-simple-1.5.11.jar
|
data/README.rdoc
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
= rjack-slf4j
|
2
|
+
|
3
|
+
* http://rjack.rubyforge.org
|
4
|
+
* http://rubyforge.org/projects/rjack
|
5
|
+
|
6
|
+
== Description
|
7
|
+
|
8
|
+
A JRuby adaption and gem packaging of the
|
9
|
+
{Simple Logging Facade for Java}[http://www.slf4j.org/].
|
10
|
+
Provides all jar dependencies and a Ruby Logger compatible
|
11
|
+
facade.
|
12
|
+
|
13
|
+
SLF4J is a java logging abstraction and set of adapters to various
|
14
|
+
concrete logging implementations and legacy logging APIs. The slf4j
|
15
|
+
gem adds a ruby core Logger compatible facade to SLF4J, and makes any
|
16
|
+
needed adapters available to JRuby applications. This makes it
|
17
|
+
possible to unify and control logging output of both java and ruby
|
18
|
+
components in a JRuby application.
|
19
|
+
|
20
|
+
== Features
|
21
|
+
|
22
|
+
* The complete set of SLF4J jars with ruby 'require' based selection
|
23
|
+
of input and output adapters.
|
24
|
+
* A Ruby core Logger compatible SLF4J::Logger, allowing ruby code to
|
25
|
+
log through SLF4J.
|
26
|
+
|
27
|
+
== Synopsis
|
28
|
+
|
29
|
+
require 'rjack-slf4j'
|
30
|
+
require 'rjack-slf4j/simple'
|
31
|
+
|
32
|
+
log = RJack::SLF4J[ "my.app.logger" ]
|
33
|
+
log.info "Hello World!"
|
34
|
+
|
35
|
+
== License
|
36
|
+
|
37
|
+
=== rjack-slf4j gem
|
38
|
+
|
39
|
+
Copyright (c) 2008-2009 David Kellum
|
40
|
+
All rights reserved.
|
41
|
+
|
42
|
+
The SLF4J ruby wrapper and gem packaging is released under the same
|
43
|
+
license terms as the SLF4J java binaries, see below. Note that these
|
44
|
+
license terms are identical to the
|
45
|
+
{MIT License}[http://en.wikipedia.org/wiki/MIT_License] and deemed
|
46
|
+
compatible with GPL and the Apache Software License.
|
47
|
+
|
48
|
+
=== SLF4J (java)
|
49
|
+
|
50
|
+
Copyright (c) 2004-2008 QOS.ch
|
51
|
+
All rights reserved.
|
52
|
+
|
53
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
54
|
+
a copy of this software and associated documentation files (the
|
55
|
+
"Software"), to deal in the Software without restriction, including
|
56
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
57
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
58
|
+
permit persons to whom the Software is furnished to do so, subject to
|
59
|
+
the following conditions:
|
60
|
+
|
61
|
+
The above copyright notice and this permission notice shall be
|
62
|
+
included in all copies or substantial portions of the Software.
|
63
|
+
|
64
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
65
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
66
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
67
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
68
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
69
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
70
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
#--
|
3
|
+
# Copyright (C) 2008-2009 David Kellum
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person
|
6
|
+
# obtaining a copy of this software and associated documentation files
|
7
|
+
# (the "Software"), to deal in the Software without restriction,
|
8
|
+
# including without limitation the rights to use, copy, modify, merge,
|
9
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
10
|
+
# and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
20
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
21
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
22
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
23
|
+
# SOFTWARE.
|
24
|
+
#++
|
25
|
+
|
26
|
+
$LOAD_PATH << './lib'
|
27
|
+
require 'rjack-slf4j/base'
|
28
|
+
|
29
|
+
require 'rubygems'
|
30
|
+
gem 'rjack-tarpit', '~> 1.2.0'
|
31
|
+
require 'rjack-tarpit'
|
32
|
+
|
33
|
+
t = RJack::TarPit.new( 'rjack-slf4j', RJack::SLF4J::VERSION, :java_platform )
|
34
|
+
|
35
|
+
t.specify do |h|
|
36
|
+
h.developer( "David Kellum", "dek-oss@gravitext.com" )
|
37
|
+
h.rubyforge_name = "rjack"
|
38
|
+
h.remote_rdoc_dir = "slf4j"
|
39
|
+
end
|
40
|
+
|
41
|
+
loaders =
|
42
|
+
begin
|
43
|
+
l = RJack::SLF4J::ADAPTERS.flatten.compact
|
44
|
+
l.delete( "jul-to-slf4j" ) # exception: maintained as source
|
45
|
+
l
|
46
|
+
end
|
47
|
+
|
48
|
+
t.generated_files = loaders.map { |adp| "lib/#{t.name}/#{adp}.rb" }
|
49
|
+
|
50
|
+
t.jars =
|
51
|
+
begin
|
52
|
+
j = [ 'slf4j-api' ]
|
53
|
+
j += RJack::SLF4J::ADAPTERS.map { |i,o| [ i, "slf4j-#{o}" ] }.flatten.compact
|
54
|
+
j.map { |n| "#{n}-#{RJack::SLF4J::SLF4J_VERSION}.jar" }
|
55
|
+
end
|
56
|
+
|
57
|
+
file 'Manifest.txt' => [ "lib/#{t.name}/base.rb" ]
|
58
|
+
|
59
|
+
t.assembly_version = 1.0
|
60
|
+
|
61
|
+
task :check_pom_deps do
|
62
|
+
t.test_line_match( 'pom.xml',
|
63
|
+
%r[<version>#{RJack::SLF4J::SLF4J_VERSION}</version>] )
|
64
|
+
end
|
65
|
+
|
66
|
+
task :check_history_version do
|
67
|
+
t.test_line_match( 'History.rdoc', /^==/, / #{t.version} / )
|
68
|
+
end
|
69
|
+
task :check_history_date do
|
70
|
+
t.test_line_match( 'History.rdoc', /^==/, /\([0-9\-]+\)$/ )
|
71
|
+
end
|
72
|
+
|
73
|
+
task :gem => [ :check_pom_deps, :check_history_version ]
|
74
|
+
task :tag => [ :check_pom_deps, :check_history_version, :check_history_date ]
|
75
|
+
task :push => [ :check_history_date ]
|
76
|
+
|
77
|
+
t.define_tasks
|
78
|
+
|
79
|
+
loaders.each do |adapter|
|
80
|
+
file "lib/#{t.name}/#{adapter}.rb" => [ "lib/#{t.name}/base.rb", 'Rakefile' ] do
|
81
|
+
open( "lib/#{t.name}/#{adapter}.rb", 'w' ) do |out|
|
82
|
+
out.write <<END
|
83
|
+
require 'rjack-slf4j'
|
84
|
+
RJack::SLF4J.require_adapter( '#{adapter}' )
|
85
|
+
END
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/assembly.xml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
<assembly>
|
2
|
+
<id>bin</id>
|
3
|
+
<formats>
|
4
|
+
<format>dir</format>
|
5
|
+
</formats>
|
6
|
+
<includeBaseDirectory>false</includeBaseDirectory>
|
7
|
+
<dependencySets>
|
8
|
+
<dependencySet>
|
9
|
+
<includes>
|
10
|
+
<include>org.slf4j:slf4j-api</include>
|
11
|
+
<include>org.slf4j:jcl-over-slf4j</include>
|
12
|
+
<include>org.slf4j:jul-to-slf4j</include>
|
13
|
+
<include>org.slf4j:log4j-over-slf4j</include>
|
14
|
+
<include>org.slf4j:slf4j-jcl</include>
|
15
|
+
<include>org.slf4j:slf4j-jdk14</include>
|
16
|
+
<include>org.slf4j:slf4j-log4j12</include>
|
17
|
+
<include>org.slf4j:slf4j-nop</include>
|
18
|
+
<include>org.slf4j:slf4j-simple</include>
|
19
|
+
</includes>
|
20
|
+
</dependencySet>
|
21
|
+
|
22
|
+
</dependencySets>
|
23
|
+
|
24
|
+
</assembly>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (C) 2008-2009 David Kellum
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person
|
5
|
+
# obtaining a copy of this software and associated documentation files
|
6
|
+
# (the "Software"), to deal in the Software without restriction,
|
7
|
+
# including without limitation the rights to use, copy, modify, merge,
|
8
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
9
|
+
# and to permit persons to whom the Software is furnished to do so,
|
10
|
+
# subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
19
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
20
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
+
# SOFTWARE.
|
23
|
+
#++
|
24
|
+
|
25
|
+
module RJack
|
26
|
+
module SLF4J
|
27
|
+
|
28
|
+
# SLF4J-java version
|
29
|
+
SLF4J_VERSION = '1.5.11'
|
30
|
+
# SLF4J gem version
|
31
|
+
VERSION = SLF4J_VERSION + '.0'
|
32
|
+
|
33
|
+
SLF4J_DIR = File.dirname(__FILE__) # :nodoc:
|
34
|
+
|
35
|
+
# :input :output (jar with slf4j- prefix)
|
36
|
+
ADAPTERS = [ [ "jul-to-slf4j", "jdk14" ],
|
37
|
+
[ "jcl-over-slf4j", "jcl" ],
|
38
|
+
[ "log4j-over-slf4j", "log4j12" ],
|
39
|
+
[ nil, "nop" ],
|
40
|
+
[ nil, "simple" ] ] # :nodoc:
|
41
|
+
end
|
42
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rjack-slf4j'
|
2
|
+
require 'rjack-slf4j/jul'
|
3
|
+
|
4
|
+
RJack::SLF4J.require_adapter( 'jul-to-slf4j' )
|
5
|
+
|
6
|
+
module RJack::SLF4J::JUL
|
7
|
+
|
8
|
+
# Replace any existing configured root java.util.Logger Handlers with
|
9
|
+
# the org.slf4j.bridge.SLF4JBridgeHandler
|
10
|
+
def self.replace_root_handlers
|
11
|
+
root_logger = root
|
12
|
+
root_logger.handlers.each do |handler|
|
13
|
+
root_logger.remove_handler( handler )
|
14
|
+
end
|
15
|
+
handler = Java::org.slf4j.bridge.SLF4JBridgeHandler.new
|
16
|
+
|
17
|
+
root_logger.add_handler( handler )
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (C) 2009 David Kellum
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person
|
5
|
+
# obtaining a copy of this software and associated documentation files
|
6
|
+
# (the "Software"), to deal in the Software without restriction,
|
7
|
+
# including without limitation the rights to use, copy, modify, merge,
|
8
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
9
|
+
# and to permit persons to whom the Software is furnished to do so,
|
10
|
+
# subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
19
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
20
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
+
# SOFTWARE.
|
23
|
+
#++
|
24
|
+
|
25
|
+
require 'rjack-slf4j'
|
26
|
+
require 'java'
|
27
|
+
|
28
|
+
# Utilities for finer grain control of the JDK java.util.logging
|
29
|
+
# (JUL). In particular, unlike other logging API's reimplemented by
|
30
|
+
# slf4j adapters, JUL log levels remain significant for enabling output
|
31
|
+
# or avoiding log message generation cycles. For a particular
|
32
|
+
# level to be output, both JUL and the destination SLF4J output adapter
|
33
|
+
# must enable it.
|
34
|
+
#
|
35
|
+
# == Usage
|
36
|
+
#
|
37
|
+
# Adjust JUL levels (in conjunction with 'slf4j/jul-to-slf4j' or
|
38
|
+
# 'slf4j/jdk14', see SLF4J.)
|
39
|
+
#
|
40
|
+
# require 'rjack-slf4j/jul'
|
41
|
+
# SLF4J::JUL[ "my.jul.logger" ].level = SLF4J::JUL::FINER
|
42
|
+
#
|
43
|
+
# Direct all output to SLF4J (output adapter != 'jdk14')
|
44
|
+
#
|
45
|
+
# require 'rjack-slf4j/jul-to-slf4j'
|
46
|
+
# RJack::SLF4J::JUL.replace_root_handlers
|
47
|
+
#
|
48
|
+
module RJack::SLF4J::JUL
|
49
|
+
LogManager = Java::java.util.logging.LogManager
|
50
|
+
Logger = Java::java.util.logging.Logger
|
51
|
+
Level = Java::java.util.logging.Level
|
52
|
+
|
53
|
+
SEVERE = Level::SEVERE
|
54
|
+
WARNING = Level::WARNING
|
55
|
+
INFO = Level::INFO
|
56
|
+
CONFIG = Level::CONFIG
|
57
|
+
FINE = Level::FINE
|
58
|
+
FINER = Level::FINER
|
59
|
+
FINEST = Level::FINEST
|
60
|
+
ALL = Level::ALL
|
61
|
+
|
62
|
+
# Global java.util.logging.LogManager reset: close any handlers and
|
63
|
+
# set root level to INFO.
|
64
|
+
def self.reset
|
65
|
+
LogManager.log_manager.reset
|
66
|
+
end
|
67
|
+
|
68
|
+
# Get java.util.logging.Logger by name (responds to level=, etc.)
|
69
|
+
def self.[]( name )
|
70
|
+
Logger.get_logger( name )
|
71
|
+
end
|
72
|
+
|
73
|
+
# Get the root logger (empty string name)
|
74
|
+
def self.root
|
75
|
+
Logger.get_logger( "" )
|
76
|
+
end
|
77
|
+
end
|
Binary file
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (C) 2008-2009 David Kellum
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License"); you
|
5
|
+
# may not use this file except in compliance with the License. You
|
6
|
+
# may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
13
|
+
# implied. See the License for the specific language governing
|
14
|
+
# permissions and limitations under the License.
|
15
|
+
#++
|
16
|
+
|
17
|
+
require 'rjack-slf4j'
|
18
|
+
|
19
|
+
module RJack::SLF4J
|
20
|
+
|
21
|
+
# Mapped Diagnostic Context support module
|
22
|
+
#
|
23
|
+
# Note that this optional module can only be loaded after a output
|
24
|
+
# adapter has been loaded. Otherwise the following output is
|
25
|
+
# printed and Exception will be thrown:
|
26
|
+
#
|
27
|
+
# SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
|
28
|
+
# SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.
|
29
|
+
# java.lang.NoClassDefFoundError: org/slf4j/impl/StaticMDCBinder
|
30
|
+
#
|
31
|
+
module MDC
|
32
|
+
|
33
|
+
# Get value associated with key, or nil.
|
34
|
+
def self.[]( key )
|
35
|
+
org.slf4j.MDC::get( key.to_s )
|
36
|
+
end
|
37
|
+
|
38
|
+
# Associate val with key, or remove key is value is nil.
|
39
|
+
def self.[]=( key, val )
|
40
|
+
if val
|
41
|
+
org.slf4j.MDC::put( key.to_s, val.to_s )
|
42
|
+
else
|
43
|
+
org.slf4j.MDC::remove( key.to_s )
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/rjack-slf4j.rb
ADDED
@@ -0,0 +1,265 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (C) 2008-2009 David Kellum
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person
|
5
|
+
# obtaining a copy of this software and associated documentation files
|
6
|
+
# (the "Software"), to deal in the Software without restriction,
|
7
|
+
# including without limitation the rights to use, copy, modify, merge,
|
8
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
9
|
+
# and to permit persons to whom the Software is furnished to do so,
|
10
|
+
# subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
19
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
20
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
+
# SOFTWARE.
|
23
|
+
#++
|
24
|
+
|
25
|
+
require 'rjack-slf4j/base'
|
26
|
+
require 'java'
|
27
|
+
|
28
|
+
# Backward compatibility for top level ::SLF4J module
|
29
|
+
SLF4J = RJack::SLF4J
|
30
|
+
|
31
|
+
module RJack
|
32
|
+
|
33
|
+
# Wrapper and core Logger compatible adapter for the
|
34
|
+
# SLF4J[http://www.slf4j.org/] logging interface.
|
35
|
+
#
|
36
|
+
# == Usage
|
37
|
+
#
|
38
|
+
# require 'rjack-slf4j'
|
39
|
+
#
|
40
|
+
# log = RJack::SLF4J[ "my.app.logger" ]
|
41
|
+
# log.info "Hello World!"
|
42
|
+
#
|
43
|
+
# == Adapters
|
44
|
+
#
|
45
|
+
# An output adapter must be required before the first log call. All
|
46
|
+
# of the following output adapters are available via +require+ from
|
47
|
+
# the slf4j gem:
|
48
|
+
#
|
49
|
+
# require 'rjack-slf4j/jcl' # Output to Jakarta Commons Logging
|
50
|
+
# require 'rjack-slf4j/jdk14' # JDK java.util.logging (JUL)
|
51
|
+
# require 'rjack-slf4j/log4j12' # Log4j (provided elsewhere)
|
52
|
+
# require 'rjack-slf4j/nop' # NOP null logger (provided)
|
53
|
+
# require 'rjack-slf4j/simple' # Simple logger (provided)
|
54
|
+
#
|
55
|
+
# The rjack-logback[http://rjack.rubyforge.org/logback] gem may
|
56
|
+
# also be be used as the output adapter:
|
57
|
+
#
|
58
|
+
# require 'rjack-logback'
|
59
|
+
#
|
60
|
+
# The first loaded output adapter wins (as with multiple adapters on
|
61
|
+
# the classpath). A warning will be logged to "slf4j" if an attempt is
|
62
|
+
# made to require a second output adapter.
|
63
|
+
#
|
64
|
+
# The following input adapters will intercept JCL, java.util.logging
|
65
|
+
# (JUL), or log4j log output and direct it through SLF4J:
|
66
|
+
#
|
67
|
+
# require 'rjack-slf4j/jcl-over-slf4j' # Route Jakarta Commons Logging to SLF4J
|
68
|
+
# require 'rjack-slf4j/log4j-over-slf4j' # Log4j to SLF4J
|
69
|
+
#
|
70
|
+
# require 'rjack-slf4j/jul-to-slf4j' # JDK java.util.logging (JUL) to SLF4J
|
71
|
+
# RJack::SLF4J::JUL.replace_root_handlers # Special case setup for JUL
|
72
|
+
#
|
73
|
+
# Multiple input adapters may be require'd. However, a RuntimeError
|
74
|
+
# will be raised in the attempt to require both an output adapter and
|
75
|
+
# input adapter from/to the same interface, for example
|
76
|
+
# 'rjack-slf4j/jcl-over-slf4j' and 'rjack-slf4j/jcl', which would otherwise cause
|
77
|
+
# a circular logging loop (and stack overflow.)
|
78
|
+
#
|
79
|
+
# Adapter names match the corresponding SLF4J jars.
|
80
|
+
#
|
81
|
+
module SLF4J
|
82
|
+
|
83
|
+
# Require an adapter by name (add the jar to classpath)
|
84
|
+
# This is normally done via require 'slf4j/_name_'
|
85
|
+
def self.require_adapter( name )
|
86
|
+
row = ADAPTERS.assoc( name )
|
87
|
+
if row
|
88
|
+
name,ban = row
|
89
|
+
output = false
|
90
|
+
else
|
91
|
+
row = ADAPTERS.rassoc( name )
|
92
|
+
ban,name = row
|
93
|
+
output = true
|
94
|
+
end
|
95
|
+
|
96
|
+
if @@loaded[ ban ]
|
97
|
+
raise "Illegal attempt to load '#{name}' when '#{ban}' is loaded."
|
98
|
+
end
|
99
|
+
|
100
|
+
if output
|
101
|
+
if ! @@output_name.nil? && name != @@output_name
|
102
|
+
logger("slf4j").warn do
|
103
|
+
"Ignoring attempt to load #{name} after #{@@output_name} already loaded."
|
104
|
+
end
|
105
|
+
return
|
106
|
+
end
|
107
|
+
if java.lang.Thread::current_thread.context_class_loader != @@api_loader
|
108
|
+
$stderr.puts( "WARNING: Attempting to load #{name} in child class" +
|
109
|
+
" loader of slf4j-api.jar loader." )
|
110
|
+
end
|
111
|
+
require_jar( 'slf4j-' + name )
|
112
|
+
@@output_name = name
|
113
|
+
else
|
114
|
+
require_jar( name )
|
115
|
+
end
|
116
|
+
|
117
|
+
@@loaded[ name ] = true
|
118
|
+
end
|
119
|
+
|
120
|
+
def self.require_jar( name ) # :nodoc:
|
121
|
+
require File.join( SLF4J_DIR, "#{name}-#{ SLF4J_VERSION }.jar" )
|
122
|
+
end
|
123
|
+
|
124
|
+
require_jar 'slf4j-api'
|
125
|
+
|
126
|
+
@@api_loader = org.slf4j.ILoggerFactory.java_class.class_loader
|
127
|
+
@@loaded = {}
|
128
|
+
@@output_name = nil
|
129
|
+
|
130
|
+
# Output adapter name if one has been added, or nil.
|
131
|
+
def self.output_name
|
132
|
+
@@output_name
|
133
|
+
end
|
134
|
+
|
135
|
+
# SLF4J severity levels
|
136
|
+
LEVELS = %w{ trace debug info warn error }
|
137
|
+
|
138
|
+
# Return a java style class name, suitable as a logger name, from the
|
139
|
+
# given ruby class or module, i.e:
|
140
|
+
#
|
141
|
+
# to_log_name( Foo::Bar::Baz ) --> "foo.bar.Baz"
|
142
|
+
#
|
143
|
+
def self.to_log_name( clz )
|
144
|
+
clz.name.gsub( /::/, '.' ).gsub( /([^\.]+)\./ ) { |m| m.downcase }
|
145
|
+
end
|
146
|
+
|
147
|
+
class << self
|
148
|
+
alias ruby_to_java_logger_name to_log_name
|
149
|
+
end
|
150
|
+
|
151
|
+
# Logger compatible facade over org.slf4j.Logger
|
152
|
+
#
|
153
|
+
# === Generated Methods
|
154
|
+
#
|
155
|
+
# Corresponding methods are generated for each of the SLF4J levels:
|
156
|
+
#
|
157
|
+
# * trace
|
158
|
+
# * debug
|
159
|
+
# * info
|
160
|
+
# * warn
|
161
|
+
# * error
|
162
|
+
# * fatal (alias to error)
|
163
|
+
#
|
164
|
+
# These have the form (using _info_ as example):
|
165
|
+
#
|
166
|
+
# log = Logger.new( "name" )
|
167
|
+
# log.info? # Is this level enabled for logging?
|
168
|
+
# log.info( "message" ) # Log message
|
169
|
+
# log.info { "message" } # Execute block if enabled
|
170
|
+
# and log returned value
|
171
|
+
# log.info( "message", ex ) # Log message with exception message/stack trace
|
172
|
+
# log.info( ex ) { "message" } # Log message with exception message/stack trace
|
173
|
+
# log.info( ex ) # Log exception with default "Exception:" message
|
174
|
+
#
|
175
|
+
# Note that the exception variants are aware of JRuby's
|
176
|
+
# NativeException class (a wrapped java exception) and will log
|
177
|
+
# using the Java ex.cause in this case.
|
178
|
+
#
|
179
|
+
class Logger
|
180
|
+
attr_reader :name
|
181
|
+
|
182
|
+
# Create new or find existing Logger by name. If name is a Module (Class, etc.)
|
183
|
+
# then use SLF4J.to_log_name( name ) as the name
|
184
|
+
#
|
185
|
+
# Note that loggers are arranged in a hiearchy by dot '.' name
|
186
|
+
# notation using java package/class name conventions:
|
187
|
+
#
|
188
|
+
# * "pmodule"
|
189
|
+
# * "pmodule.cmodule."
|
190
|
+
# * "pmodule.cmodule.ClassName"
|
191
|
+
#
|
192
|
+
# Which enables hierarchical level setting and abbreviation in some output adapters.
|
193
|
+
#
|
194
|
+
def initialize( name )
|
195
|
+
@name = name.is_a?( Module ) ? SLF4J.to_log_name( name ) : name
|
196
|
+
@logger = org.slf4j.LoggerFactory.getLogger( @name )
|
197
|
+
end
|
198
|
+
|
199
|
+
# Return underlying org.slf4j.Logger
|
200
|
+
def java_logger
|
201
|
+
@logger
|
202
|
+
end
|
203
|
+
|
204
|
+
# Define logging methods for each level: debug(), error(), etc.
|
205
|
+
LEVELS.each do |lvl|
|
206
|
+
module_eval( %Q{
|
207
|
+
|
208
|
+
def #{lvl}?
|
209
|
+
@logger.is#{lvl.capitalize}Enabled
|
210
|
+
end
|
211
|
+
|
212
|
+
def #{lvl}( msg=nil, ex=nil )
|
213
|
+
if msg.is_a?( Exception ) && ex.nil?
|
214
|
+
msg, ex = "Exception:", msg
|
215
|
+
end
|
216
|
+
msg = yield if ( block_given? && #{lvl}? )
|
217
|
+
if msg
|
218
|
+
if ex
|
219
|
+
#{lvl}_ex( msg, ex )
|
220
|
+
else
|
221
|
+
@logger.#{lvl}( msg.to_s )
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
def #{lvl}_ex( msg, ex )
|
227
|
+
if ex.is_a?( NativeException )
|
228
|
+
@logger.#{lvl}( msg.to_s, ex.cause )
|
229
|
+
elsif #{lvl}?
|
230
|
+
log = msg.to_s
|
231
|
+
log << '\n'
|
232
|
+
log << ex.class.name << ': ' << ex.message << '\n'
|
233
|
+
ex.backtrace.each do |b|
|
234
|
+
log << '\t' << b << '\n'
|
235
|
+
end
|
236
|
+
@logger.#{lvl}( log )
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
} )
|
241
|
+
end
|
242
|
+
|
243
|
+
# Alias fatal to error for Logger compatibility
|
244
|
+
alias_method :fatal, :error
|
245
|
+
alias_method :fatal?, :error?
|
246
|
+
end
|
247
|
+
|
248
|
+
# Get Logger by name
|
249
|
+
def logger( name = self.class.name )
|
250
|
+
Logger.new( name )
|
251
|
+
end
|
252
|
+
module_function :logger
|
253
|
+
|
254
|
+
# Synonym for Logger.new( name )
|
255
|
+
def self.[]( name )
|
256
|
+
Logger.new( name )
|
257
|
+
end
|
258
|
+
|
259
|
+
# The ILoggerFactory instance if an output adapter has been loaded
|
260
|
+
def self.linked_factory
|
261
|
+
org.slf4j.LoggerFactory.getILoggerFactory
|
262
|
+
end
|
263
|
+
|
264
|
+
end
|
265
|
+
end
|
data/pom.xml
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
2
|
+
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
4
|
+
<groupId>rjack</groupId>
|
5
|
+
<artifactId>rjack-slf4j</artifactId>
|
6
|
+
<packaging>pom</packaging>
|
7
|
+
<version>1.0</version>
|
8
|
+
<name>SLF4J assembly</name>
|
9
|
+
|
10
|
+
<dependencies>
|
11
|
+
|
12
|
+
<dependency>
|
13
|
+
<groupId>org.slf4j</groupId>
|
14
|
+
<artifactId>slf4j-api</artifactId>
|
15
|
+
<version>1.5.11</version>
|
16
|
+
</dependency>
|
17
|
+
|
18
|
+
<dependency>
|
19
|
+
<groupId>org.slf4j</groupId>
|
20
|
+
<artifactId>jcl-over-slf4j</artifactId>
|
21
|
+
<version>1.5.11</version>
|
22
|
+
<scope>runtime</scope>
|
23
|
+
</dependency>
|
24
|
+
|
25
|
+
<dependency>
|
26
|
+
<groupId>org.slf4j</groupId>
|
27
|
+
<artifactId>jul-to-slf4j</artifactId>
|
28
|
+
<version>1.5.11</version>
|
29
|
+
<scope>runtime</scope>
|
30
|
+
</dependency>
|
31
|
+
|
32
|
+
<dependency>
|
33
|
+
<groupId>org.slf4j</groupId>
|
34
|
+
<artifactId>log4j-over-slf4j</artifactId>
|
35
|
+
<version>1.5.11</version>
|
36
|
+
<scope>runtime</scope>
|
37
|
+
</dependency>
|
38
|
+
|
39
|
+
<dependency>
|
40
|
+
<groupId>org.slf4j</groupId>
|
41
|
+
<artifactId>slf4j-jdk14</artifactId>
|
42
|
+
<version>1.5.11</version>
|
43
|
+
<scope>runtime</scope>
|
44
|
+
<optional>true</optional>
|
45
|
+
</dependency>
|
46
|
+
|
47
|
+
<dependency>
|
48
|
+
<groupId>org.slf4j</groupId>
|
49
|
+
<artifactId>slf4j-log4j12</artifactId>
|
50
|
+
<version>1.5.11</version>
|
51
|
+
<scope>runtime</scope>
|
52
|
+
<optional>true</optional>
|
53
|
+
</dependency>
|
54
|
+
|
55
|
+
<dependency>
|
56
|
+
<groupId>org.slf4j</groupId>
|
57
|
+
<artifactId>slf4j-jcl</artifactId>
|
58
|
+
<version>1.5.11</version>
|
59
|
+
<scope>runtime</scope>
|
60
|
+
<optional>true</optional>
|
61
|
+
</dependency>
|
62
|
+
|
63
|
+
<dependency>
|
64
|
+
<groupId>org.slf4j</groupId>
|
65
|
+
<artifactId>slf4j-simple</artifactId>
|
66
|
+
<version>1.5.11</version>
|
67
|
+
<scope>runtime</scope>
|
68
|
+
<optional>true</optional>
|
69
|
+
</dependency>
|
70
|
+
|
71
|
+
<dependency>
|
72
|
+
<groupId>org.slf4j</groupId>
|
73
|
+
<artifactId>slf4j-nop</artifactId>
|
74
|
+
<version>1.5.11</version>
|
75
|
+
<scope>runtime</scope>
|
76
|
+
<optional>true</optional>
|
77
|
+
</dependency>
|
78
|
+
|
79
|
+
</dependencies>
|
80
|
+
|
81
|
+
<build>
|
82
|
+
<plugins>
|
83
|
+
<plugin>
|
84
|
+
<artifactId>maven-assembly-plugin</artifactId>
|
85
|
+
<configuration>
|
86
|
+
<descriptors>
|
87
|
+
<descriptor>assembly.xml</descriptor>
|
88
|
+
</descriptors>
|
89
|
+
<tarLongFileMode>gnu</tarLongFileMode>
|
90
|
+
</configuration>
|
91
|
+
<executions>
|
92
|
+
<execution>
|
93
|
+
<id>assembly</id>
|
94
|
+
<phase>package</phase>
|
95
|
+
<goals>
|
96
|
+
<goal>attached</goal>
|
97
|
+
</goals>
|
98
|
+
</execution>
|
99
|
+
</executions>
|
100
|
+
</plugin>
|
101
|
+
</plugins>
|
102
|
+
</build>
|
103
|
+
|
104
|
+
</project>
|
data/test/test_slf4j.rb
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
#!/usr/bin/env jruby
|
2
|
+
#--
|
3
|
+
# Copyright (c) 2008-2009 David Kellum
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person
|
6
|
+
# obtaining a copy of this software and associated documentation files
|
7
|
+
# (the "Software"), to deal in the Software without restriction,
|
8
|
+
# including without limitation the rights to use, copy, modify, merge,
|
9
|
+
# publish, distribute, sublicense, and/or sell copies of the Software,
|
10
|
+
# and to permit persons to whom the Software is furnished to do so,
|
11
|
+
# subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
20
|
+
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
21
|
+
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
22
|
+
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
23
|
+
# SOFTWARE.
|
24
|
+
#++
|
25
|
+
|
26
|
+
$LOAD_PATH.unshift File.join( File.dirname(__FILE__), "..", "lib" )
|
27
|
+
|
28
|
+
require 'rjack-slf4j'
|
29
|
+
|
30
|
+
# Load jdk14 implementation for testing
|
31
|
+
require 'rjack-slf4j/jdk14'
|
32
|
+
|
33
|
+
# Now safe to load:
|
34
|
+
require 'rjack-slf4j/mdc'
|
35
|
+
|
36
|
+
# Load these only to confirm loading works
|
37
|
+
require 'rjack-slf4j/jcl-over-slf4j'
|
38
|
+
require 'rjack-slf4j/log4j-over-slf4j'
|
39
|
+
|
40
|
+
require 'test/unit'
|
41
|
+
|
42
|
+
class TestHandler < java.util.logging.Handler
|
43
|
+
attr_accessor :count, :last
|
44
|
+
|
45
|
+
def initialize
|
46
|
+
reset
|
47
|
+
end
|
48
|
+
|
49
|
+
def flush; end
|
50
|
+
def close; end
|
51
|
+
|
52
|
+
def publish( record )
|
53
|
+
@count += 1
|
54
|
+
@last = record
|
55
|
+
end
|
56
|
+
|
57
|
+
def reset
|
58
|
+
@count = 0
|
59
|
+
@last = nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
module Foo
|
64
|
+
module Bar
|
65
|
+
class Baz
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
class TestSlf4j < Test::Unit::TestCase
|
71
|
+
|
72
|
+
JdkLogger = java.util.logging.Logger
|
73
|
+
|
74
|
+
def setup
|
75
|
+
@handler = TestHandler.new
|
76
|
+
@jdk_logger = JdkLogger.getLogger ""
|
77
|
+
@jdk_logger.addHandler @handler
|
78
|
+
@jdk_logger.level = java.util.logging.Level::INFO
|
79
|
+
@log = SLF4J[ "my.app" ]
|
80
|
+
end
|
81
|
+
|
82
|
+
def teardown
|
83
|
+
@handler.reset
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_logger
|
87
|
+
assert !@log.trace?
|
88
|
+
@log.trace( "not written" )
|
89
|
+
assert !@log.debug?
|
90
|
+
@log.debug { "also not written" }
|
91
|
+
assert @log.info?
|
92
|
+
@log.info { "test write info" }
|
93
|
+
assert @log.warn?
|
94
|
+
@log.warn { "test write warning" }
|
95
|
+
assert @log.error?
|
96
|
+
@log.error( "test write error" )
|
97
|
+
assert @log.fatal?
|
98
|
+
@log.fatal { "test write fatal --> error" }
|
99
|
+
assert_equal( 4, @handler.count )
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_native_exception
|
103
|
+
jlist = Java::java.util.ArrayList.new
|
104
|
+
jlist.add( 33 )
|
105
|
+
ex = nil
|
106
|
+
begin
|
107
|
+
jlist.get( 666 ) # IndexOutOfBoundsException
|
108
|
+
rescue Java::java.lang.IndexOutOfBoundsException => x
|
109
|
+
ex = x
|
110
|
+
@log.error( "test java exception", x )
|
111
|
+
end
|
112
|
+
assert_equal( 1, @handler.count )
|
113
|
+
assert_same( ex.cause, @handler.last.thrown )
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_ruby_exception
|
117
|
+
begin
|
118
|
+
0/0 # ZeroDivisionError
|
119
|
+
rescue ZeroDivisionError => x
|
120
|
+
@log.error( x )
|
121
|
+
end
|
122
|
+
assert_equal( 1, @handler.count )
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_ruby_exception_block
|
126
|
+
begin
|
127
|
+
0/0 # ZeroDivisionError
|
128
|
+
rescue ZeroDivisionError => x
|
129
|
+
@log.error( x ) { "ruby exception" }
|
130
|
+
end
|
131
|
+
assert_equal( 1, @handler.count )
|
132
|
+
end
|
133
|
+
|
134
|
+
def test_to_log_name
|
135
|
+
assert_equal( "foo.bar.Baz",
|
136
|
+
SLF4J.to_log_name( Foo::Bar::Baz ) )
|
137
|
+
assert_equal( "foo.bar.Baz", SLF4J[ Foo::Bar::Baz ].name )
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_circular_ban
|
141
|
+
assert_raise( RuntimeError ) do
|
142
|
+
require 'rjack-slf4j/jul-to-slf4j'
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rjack-slf4j
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.5.11.0
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- David Kellum
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-03-06 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rjack-tarpit
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.2.0
|
24
|
+
version:
|
25
|
+
description: |-
|
26
|
+
A JRuby adaption and gem packaging of the
|
27
|
+
{Simple Logging Facade for Java}[http://www.slf4j.org/].
|
28
|
+
Provides all jar dependencies and a Ruby Logger compatible
|
29
|
+
facade.
|
30
|
+
|
31
|
+
SLF4J is a java logging abstraction and set of adapters to various
|
32
|
+
concrete logging implementations and legacy logging APIs. The slf4j
|
33
|
+
gem adds a ruby core Logger compatible facade to SLF4J, and makes any
|
34
|
+
needed adapters available to JRuby applications. This makes it
|
35
|
+
possible to unify and control logging output of both java and ruby
|
36
|
+
components in a JRuby application.
|
37
|
+
email:
|
38
|
+
- dek-oss@gravitext.com
|
39
|
+
executables: []
|
40
|
+
|
41
|
+
extensions: []
|
42
|
+
|
43
|
+
extra_rdoc_files:
|
44
|
+
- Manifest.txt
|
45
|
+
- README.rdoc
|
46
|
+
- History.rdoc
|
47
|
+
files:
|
48
|
+
- Manifest.static
|
49
|
+
- Manifest.txt
|
50
|
+
- README.rdoc
|
51
|
+
- History.rdoc
|
52
|
+
- Rakefile
|
53
|
+
- pom.xml
|
54
|
+
- assembly.xml
|
55
|
+
- lib/rjack-slf4j/base.rb
|
56
|
+
- lib/rjack-slf4j.rb
|
57
|
+
- lib/rjack-slf4j/jul-to-slf4j.rb
|
58
|
+
- lib/rjack-slf4j/jul.rb
|
59
|
+
- lib/rjack-slf4j/mdc.rb
|
60
|
+
- test/test_slf4j.rb
|
61
|
+
- lib/rjack-slf4j/jcl-over-slf4j.rb
|
62
|
+
- lib/rjack-slf4j/jcl.rb
|
63
|
+
- lib/rjack-slf4j/jdk14.rb
|
64
|
+
- lib/rjack-slf4j/log4j-over-slf4j.rb
|
65
|
+
- lib/rjack-slf4j/log4j12.rb
|
66
|
+
- lib/rjack-slf4j/nop.rb
|
67
|
+
- lib/rjack-slf4j/simple.rb
|
68
|
+
- lib/rjack-slf4j/jcl-over-slf4j-1.5.11.jar
|
69
|
+
- lib/rjack-slf4j/jul-to-slf4j-1.5.11.jar
|
70
|
+
- lib/rjack-slf4j/log4j-over-slf4j-1.5.11.jar
|
71
|
+
- lib/rjack-slf4j/slf4j-api-1.5.11.jar
|
72
|
+
- lib/rjack-slf4j/slf4j-jcl-1.5.11.jar
|
73
|
+
- lib/rjack-slf4j/slf4j-jdk14-1.5.11.jar
|
74
|
+
- lib/rjack-slf4j/slf4j-log4j12-1.5.11.jar
|
75
|
+
- lib/rjack-slf4j/slf4j-nop-1.5.11.jar
|
76
|
+
- lib/rjack-slf4j/slf4j-simple-1.5.11.jar
|
77
|
+
has_rdoc: true
|
78
|
+
homepage: http://rjack.rubyforge.org
|
79
|
+
licenses: []
|
80
|
+
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options:
|
83
|
+
- --main
|
84
|
+
- README.rdoc
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: "0"
|
92
|
+
version:
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: "0"
|
98
|
+
version:
|
99
|
+
requirements: []
|
100
|
+
|
101
|
+
rubyforge_project: rjack
|
102
|
+
rubygems_version: 1.3.5
|
103
|
+
signing_key:
|
104
|
+
specification_version: 3
|
105
|
+
summary: A JRuby adaption and gem packaging of the {Simple Logging Facade for Java}[http://www.slf4j.org/]
|
106
|
+
test_files:
|
107
|
+
- test/test_slf4j.rb
|