trinidad_logging_extension 0.2.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ == 1.0.0 (2011-08-18)
2
+
3
+ * Route log through slf4j and add support for logback and java.util.logging
4
+
1
5
  == 0.2.0 (2010-07-31)
2
6
 
3
7
  * Upgrade to Tomcat 7
data/LICENSE CHANGED
@@ -1,4 +1,5 @@
1
1
  Copyright (c) 2009 David Calavera
2
+ Copyright (c) 2011 Michael Leinartas
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining
4
5
  a copy of this software and associated documentation files (the
data/README CHANGED
@@ -3,7 +3,12 @@ Trinidad Logging Extension
3
3
 
4
4
  # DESCRIPTION
5
5
 
6
- Extension to enhance the Trinidad's logging based on Apache Log4j(http://logging.apache.org/log4j).
6
+ Extension to enhance the Trinidad's logging by routing it through one of:
7
+ - Log4j (http://logging.apache.org/log4j/index.html)
8
+ - Logback (http://logback.qos.ch/)
9
+ - java.util.logging
10
+
11
+ SLF4J and the jruby-rack slf4j RackLogger are used to abstract the different implementations
7
12
 
8
13
  # INSTALLATION
9
14
 
@@ -11,9 +16,14 @@ jruby -S gem install trinidad_logging_extension
11
16
 
12
17
  # CONFIGURATION
13
18
 
14
- The extension needs a configuration file for log4j. The default path for
15
- this file is 'config/trinidad-logging.properties' but it can be overrided
16
- into the Trinidad's configuration file.
19
+ The extension needs a configuration file for the chosen logging system. This file can be overridden in config
20
+ - Log4j (Default)
21
+ Default configuration file: 'config/trinidad-logging.properties'
22
+ - Logback
23
+ Default configuration file: 'config/trinidad-logging.xml'
24
+ - java.util.logging
25
+ Default configuration file: 'config/trinidad-logging.properties'
26
+
17
27
 
18
28
  To enable the extension add this to your trinidad.yml:
19
29
 
@@ -21,6 +31,7 @@ To enable the extension add this to your trinidad.yml:
21
31
  extensions:
22
32
  logging:
23
33
  config: other_properties.properties # This field is optional
34
+ logging_system: log4j # This field is optional defaulting to 'log4j'. 'logback', and 'jul' are also valid choices
24
35
 
25
36
  This is an example of configuration file extracted from the Tomcat's documentation:
26
37
 
@@ -37,3 +48,4 @@ You can find further information on how to write your own extension in the wiki:
37
48
  # Copyright
38
49
 
39
50
  Copyright (c) 2010 David Calavera. See LICENSE for details.
51
+ Copyright (c) 2011 Michael Leinartas. See LICENSE for details.
@@ -1,18 +1,57 @@
1
1
  module Trinidad
2
2
  module Extensions
3
3
  module Logging
4
- VERSION = '0.2.1'
4
+ VERSION = '1.0.0'
5
5
  end
6
6
 
7
- __DIR__ = File.dirname(__FILE__)
8
- require File.expand_path('../trinidad-libs/juli-adapters', __DIR__)
9
- require File.expand_path('../trinidad-libs/log4j-1.2.16', __DIR__)
7
+ require 'trinidad_logging_extension/jars'
10
8
 
11
9
  class LoggingServerExtension < ServerExtension
10
+ include Trinidad::Extensions::LoggingJars
11
+
12
12
  def configure(tomcat)
13
- @options[:config] ||= 'config/trinidad-logging.properties'
14
- java.lang.System.set_property('log4j.configuration',
15
- java.io.File.new(File.expand_path(@options[:config])).to_url.to_s)
13
+ @options[:logging_system] ||= 'log4j'
14
+ @options[:config] ||= @options[:logging_system].eql? 'logback' ?
15
+ 'config/trinidad-logging.xml' : 'config/trinidad-logging.properties'
16
+
17
+ require_common_jars
18
+
19
+ case @options[:logging_system]
20
+ when 'log4j'
21
+ set_config_property 'log4j.configuration'
22
+ require_log4j_jars
23
+ configure_jul_bridge
24
+ when 'logback'
25
+ set_config_property 'logback.configurationFile'
26
+ require_logback_jars
27
+ configure_jul_bridge
28
+ when 'jul', 'jdk14', 'util'
29
+ set_config_property('java.util.logging.config.file', false)
30
+ require_jul_jars
31
+ java_import 'java.util.logging.LogManager'
32
+ java.util.logging.LogManager.getLogManager.readConfiguration
33
+ else
34
+ return
35
+ end
36
+ end
37
+
38
+ def configure_jul_bridge
39
+ java_import 'org.slf4j.bridge.SLF4JBridgeHandler'
40
+ org.slf4j.bridge.SLF4JBridgeHandler.install
41
+ end
42
+
43
+ def set_config_property(property_name, url=true)
44
+ config_file = File.expand_path(@options[:config])
45
+ if url
46
+ config_file = java.io.File.new(config_file).to_url.to_s
47
+ end
48
+ java.lang.System.set_property(property_name, config_file)
49
+ end
50
+ end
51
+
52
+ class LoggingWebAppExtension < WebAppExtension
53
+ def configure(tomcat, app_context)
54
+ app_context.add_parameter('jruby.rack.logging', 'slf4j')
16
55
  end
17
56
  end
18
57
  end
@@ -0,0 +1,33 @@
1
+ $:.unshift(File.expand_path"../../trinidad-libs", File.dirname(__FILE__))
2
+
3
+ module Trinidad
4
+ module Extensions
5
+ module LoggingJars
6
+ SLF4J_VERSION = '1.6.1'
7
+ LOG4J_VERSION = '1.2.16'
8
+ LOGBACK_VERSION = '0.9.29'
9
+
10
+ def require_common_jars
11
+ require "slf4j-api-#{SLF4J_VERSION}.jar"
12
+ require "juli-adapters.jar"
13
+ require "jcl-over-slf4j-#{SLF4J_VERSION}.jar"
14
+ end
15
+
16
+ def require_log4j_jars
17
+ require "slf4j-log4j12-#{SLF4J_VERSION}.jar"
18
+ require "log4j-#{LOG4J_VERSION}"
19
+ require "jul-to-slf4j-#{SLF4J_VERSION}.jar"
20
+ end
21
+
22
+ def require_logback_jars
23
+ require "logback-core-#{LOGBACK_VERSION}.jar"
24
+ require "logback-classic-#{LOGBACK_VERSION}.jar"
25
+ require "jul-to-slf4j-#{SLF4J_VERSION}.jar"
26
+ end
27
+
28
+ def require_jul_jars
29
+ require "slf4j-jdk14-#{SLF4J_VERSION}.jar"
30
+ end
31
+ end
32
+ end
33
+ end
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'trinidad_logging_extension'
16
- s.version = '0.2.1'
17
- s.date = '2010-09-22'
16
+ s.version = '1.0.0'
17
+ s.date = '2011-08-18'
18
18
  s.rubyforge_project = 'trinidad_logging_extension'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -57,8 +57,16 @@ Gem::Specification.new do |s|
57
57
  README
58
58
  Rakefile
59
59
  lib/trinidad_logging_extension.rb
60
+ lib/trinidad_logging_extension/jars.rb
61
+ trinidad-libs/jcl-over-slf4j-1.6.1.jar
62
+ trinidad-libs/jul-to-slf4j-1.6.1.jar
60
63
  trinidad-libs/juli-adapters.jar
61
64
  trinidad-libs/log4j-1.2.16.jar
65
+ trinidad-libs/logback-classic-0.9.29.jar
66
+ trinidad-libs/logback-core-0.9.29.jar
67
+ trinidad-libs/slf4j-api-1.6.1.jar
68
+ trinidad-libs/slf4j-jdk14-1.6.1.jar
69
+ trinidad-libs/slf4j-log4j12-1.6.1.jar
62
70
  trinidad_logging_extension.gemspec
63
71
  ]
64
72
  # = MANIFEST =
metadata CHANGED
@@ -1,67 +1,51 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trinidad_logging_extension
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
4
+ prerelease:
5
+ version: 1.0.0
11
6
  platform: ruby
12
7
  authors:
13
- - David Calavera
8
+ - David Calavera
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2010-09-22 00:00:00 +02:00
13
+ date: 2011-08-18 00:00:00 -07:00
19
14
  default_executable:
20
15
  dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: trinidad
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 57
30
- segments:
31
- - 0
32
- - 9
33
- - 1
34
- version: 0.9.1
35
- type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rspec
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
49
- type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: mocha
53
- prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- type: :development
64
- version_requirements: *id003
16
+ - !ruby/object:Gem::Dependency
17
+ name: trinidad
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 0.9.1
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :development
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: mocha
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id003
65
49
  description: Configure logging service for Trinidad
66
50
  email: calavera@apache.org
67
51
  executables: []
@@ -69,48 +53,50 @@ executables: []
69
53
  extensions: []
70
54
 
71
55
  extra_rdoc_files:
72
- - README
73
- - LICENSE
56
+ - README
57
+ - LICENSE
74
58
  files:
75
- - History.txt
76
- - LICENSE
77
- - README
78
- - Rakefile
79
- - lib/trinidad_logging_extension.rb
80
- - trinidad-libs/juli-adapters.jar
81
- - trinidad-libs/log4j-1.2.16.jar
82
- - trinidad_logging_extension.gemspec
59
+ - History.txt
60
+ - LICENSE
61
+ - README
62
+ - Rakefile
63
+ - lib/trinidad_logging_extension.rb
64
+ - lib/trinidad_logging_extension/jars.rb
65
+ - trinidad-libs/jcl-over-slf4j-1.6.1.jar
66
+ - trinidad-libs/jul-to-slf4j-1.6.1.jar
67
+ - trinidad-libs/juli-adapters.jar
68
+ - trinidad-libs/log4j-1.2.16.jar
69
+ - trinidad-libs/logback-classic-0.9.29.jar
70
+ - trinidad-libs/logback-core-0.9.29.jar
71
+ - trinidad-libs/slf4j-api-1.6.1.jar
72
+ - trinidad-libs/slf4j-jdk14-1.6.1.jar
73
+ - trinidad-libs/slf4j-log4j12-1.6.1.jar
74
+ - trinidad_logging_extension.gemspec
83
75
  has_rdoc: true
84
76
  homepage: http://github.com/calavera/trinidad_logging_extension
85
77
  licenses: []
86
78
 
87
79
  post_install_message:
88
80
  rdoc_options:
89
- - --charset=UTF-8
81
+ - --charset=UTF-8
90
82
  require_paths:
91
- - lib
83
+ - lib
92
84
  required_ruby_version: !ruby/object:Gem::Requirement
93
85
  none: false
94
86
  requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- hash: 3
98
- segments:
99
- - 0
100
- version: "0"
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
101
90
  required_rubygems_version: !ruby/object:Gem::Requirement
102
91
  none: false
103
92
  requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
108
- - 0
109
- version: "0"
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: "0"
110
96
  requirements: []
111
97
 
112
98
  rubyforge_project: trinidad_logging_extension
113
- rubygems_version: 1.3.7
99
+ rubygems_version: 1.5.1
114
100
  signing_key:
115
101
  specification_version: 2
116
102
  summary: Logging extension for Trinidad