lumber 0.9.4 → 0.9.5
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/CHANGELOG +5 -0
- data/README.rdoc +8 -1
- data/VERSION +1 -1
- data/lib/lumber/logger_support.rb +26 -0
- data/lib/lumber/lumber.rb +4 -1
- data/lib/lumber.rb +1 -0
- data/test/logger_support_test.rb +36 -0
- data/test/test_helper.rb +1 -0
- metadata +6 -3
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -23,7 +23,14 @@ to config/environment.rb:
|
|
23
23
|
# If you really want, you can make all classes have a logger
|
24
24
|
# Lumber.setup_logger_hierarchy("Object", "root::object")
|
25
25
|
|
26
|
-
|
26
|
+
Additionally, you can also add loggers to individual classes by including the LumberLoggerSupport module
|
27
|
+
class Foo
|
28
|
+
include Lumber::LoggerSupport
|
29
|
+
end
|
30
|
+
|
31
|
+
and Foo.logger/Foo.new.logger will log to a logger named "rails::Foo". This creates a heirarchy of loggers for classes
|
32
|
+
nested within modules, so you can use the namespace to enable/disable loggers
|
33
|
+
|
27
34
|
If you want to change the log level for a different environment, add a line like below to the config/environments/<env>.rb
|
28
35
|
|
29
36
|
# Set info as the default log level for production
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.5
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Lumber
|
2
|
+
|
3
|
+
# Include this module to add a logger accessible from both class and instance methods.
|
4
|
+
# A logger heirarchy will be created if the class including this module is nested
|
5
|
+
module LoggerSupport
|
6
|
+
|
7
|
+
def self.included(receiver)
|
8
|
+
receiver.class_eval do
|
9
|
+
class_inheritable_accessor :logger
|
10
|
+
last_logger = nil
|
11
|
+
name_parts = self.name.split("::")
|
12
|
+
name_parts.insert(0, Lumber::BASE_LOGGER)
|
13
|
+
name_parts.each_with_index do |part, i|
|
14
|
+
partial = name_parts[0..i].join("::")
|
15
|
+
last_logger = Log4r::Logger[partial]
|
16
|
+
if ! last_logger
|
17
|
+
last_logger = Log4r::Logger.new(partial)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
self.logger = last_logger
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/lib/lumber/lumber.rb
CHANGED
@@ -13,6 +13,9 @@ require "active_support/core_ext/module"
|
|
13
13
|
|
14
14
|
module Lumber
|
15
15
|
|
16
|
+
# name of top level logger (can't be root as you can't have outputters on root)
|
17
|
+
BASE_LOGGER= 'rails'
|
18
|
+
|
16
19
|
# Initializes log4r system. Needs to happen in
|
17
20
|
# config/environment.rb before Rails::Initializer.run
|
18
21
|
#
|
@@ -45,7 +48,7 @@ module Lumber
|
|
45
48
|
if defined?(RAILS_DEFAULT_LOGGER)
|
46
49
|
Object.send(:remove_const, :RAILS_DEFAULT_LOGGER)
|
47
50
|
end
|
48
|
-
Object.const_set('RAILS_DEFAULT_LOGGER', Log4r::Logger[
|
51
|
+
Object.const_set('RAILS_DEFAULT_LOGGER', Log4r::Logger[BASE_LOGGER])
|
49
52
|
|
50
53
|
@@registered_loggers = {}
|
51
54
|
self.register_inheritance_handler()
|
data/lib/lumber.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test_helper.rb'
|
2
|
+
|
3
|
+
class LoggerSupportTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def teardown
|
6
|
+
Log4r::Logger::Repository.instance.loggers.clear
|
7
|
+
LoggerSupportTest.constants.grep(/^Foo/).each do |c|
|
8
|
+
LoggerSupportTest.send(:remove_const, c)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
should "create logger for chain" do
|
13
|
+
class Foo; include Lumber::LoggerSupport; end
|
14
|
+
assert_equal Log4r::Logger["rails::LoggerSupportTest::Foo"], Foo.logger
|
15
|
+
assert_equal Log4r::Logger["rails::LoggerSupportTest"], Foo.logger.parent
|
16
|
+
assert_equal Log4r::Logger["rails"], Foo.logger.parent.parent
|
17
|
+
assert_equal Log4r::Logger.root, Foo.logger.parent.parent.parent
|
18
|
+
end
|
19
|
+
|
20
|
+
should "have a logger instance accessible from an instance method" do
|
21
|
+
logger = stub_everything()
|
22
|
+
Log4r::Logger.stubs(:new).returns(logger)
|
23
|
+
class Foo; include Lumber::LoggerSupport; def member_method; logger.debug('hi'); end; end
|
24
|
+
logger.expects(:debug).with('hi')
|
25
|
+
Foo.new.member_method
|
26
|
+
end
|
27
|
+
|
28
|
+
should "have a logger instance accessible from a class method " do
|
29
|
+
logger = stub_everything()
|
30
|
+
Log4r::Logger.stubs(:new).returns(logger)
|
31
|
+
class Foo; include Lumber::LoggerSupport; def self.class_method; logger.debug('hi'); end; end
|
32
|
+
logger.expects(:debug).with('hi')
|
33
|
+
Foo.class_method
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 9
|
8
|
-
-
|
9
|
-
version: 0.9.
|
8
|
+
- 5
|
9
|
+
version: 0.9.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Matt Conway
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-07-01 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -77,7 +77,9 @@ files:
|
|
77
77
|
- generators/lumber/templates/log4r.yml
|
78
78
|
- lib/lumber.rb
|
79
79
|
- lib/lumber/log4r.rb
|
80
|
+
- lib/lumber/logger_support.rb
|
80
81
|
- lib/lumber/lumber.rb
|
82
|
+
- test/logger_support_test.rb
|
81
83
|
- test/lumber_test.rb
|
82
84
|
- test/test_helper.rb
|
83
85
|
has_rdoc: true
|
@@ -113,5 +115,6 @@ signing_key:
|
|
113
115
|
specification_version: 3
|
114
116
|
summary: Lumber integrates the log4r logging system within your application.
|
115
117
|
test_files:
|
118
|
+
- test/logger_support_test.rb
|
116
119
|
- test/lumber_test.rb
|
117
120
|
- test/test_helper.rb
|