lumber 0.11.1 → 0.12.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/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 0.12.0 (05/31/2012)
2
+ -------------------
3
+
4
+ allow setting of outputter levels too <c0fc515>
5
+
1
6
  0.11.1 (05/23/2012)
2
7
  -------------------
3
8
 
@@ -51,9 +51,14 @@ module Lumber
51
51
  else
52
52
  backup_levels(levels.keys)
53
53
  levels.each do |name, level|
54
- logger = Lumber.find_or_create_logger(name)
55
54
  level_val = Log4r::LNAMES.index(level)
56
- logger.level = level_val if level_val
55
+ outputter = Log4r::Outputter[name]
56
+ if outputter
57
+ outputter.level = level_val if level_val && outputter.level != level_val
58
+ else
59
+ logger = Lumber.find_or_create_logger(name)
60
+ logger.level = level_val if level_val && logger.level != level_val
61
+ end
57
62
  end
58
63
  end
59
64
  end
@@ -81,6 +86,7 @@ module Lumber
81
86
  protected
82
87
 
83
88
  @original_levels = {}
89
+ @original_outputter_levels = {}
84
90
 
85
91
  # Backs up original values of logger levels before we overwrite them
86
92
  # This is better in local memory since we shouldn't reset loggers that we haven't set
@@ -88,9 +94,14 @@ module Lumber
88
94
  def backup_levels(loggers)
89
95
  synchronize do
90
96
  loggers.each do |name|
91
- logger = Lumber.find_or_create_logger(name)
92
- # only store the old level if we haven't overriden it's logger yet
93
- @original_levels[name] ||= logger.level
97
+ outputter = Log4r::Outputter[name]
98
+ if outputter
99
+ @original_outputter_levels[name] ||= outputter.level
100
+ else
101
+ logger = Lumber.find_or_create_logger(name)
102
+ # only store the old level if we haven't overriden it's logger yet
103
+ @original_levels[name] ||= logger.level
104
+ end
94
105
  end
95
106
  end
96
107
  end
@@ -98,9 +109,15 @@ module Lumber
98
109
  # Restores original values of logger levels after expiration
99
110
  def restore_levels
100
111
  synchronize do
112
+ @original_outputter_levels.each do |name, level|
113
+ outputter = Log4r::Outputter[name]
114
+ outputter.level = level if outputter.level != level
115
+ end
116
+ @original_outputter_levels.clear
117
+
101
118
  @original_levels.each do |name, level|
102
119
  logger = Lumber.find_or_create_logger(name)
103
- logger.level = level
120
+ logger.level = level if logger.level != level
104
121
  end
105
122
  @original_levels.clear
106
123
  end
@@ -38,9 +38,13 @@
38
38
  </table>
39
39
 
40
40
  <script type="text/javascript" charset="utf-8">
41
-
42
- var typeahead_logger_names = <%= lnames = []; Log4r::Logger.each {|name, logger| lnames << name }; lnames.inspect %>;
43
- var typeahead_logger_levels = <%= Log4r::LNAMES.inspect %>;
41
+ <%
42
+ lnames = []
43
+ Log4r::Outputter.each {|name, outputter| lnames << name }
44
+ Log4r::Logger.each {|name, logger| lnames << name }
45
+ %>
46
+ var typeahead_logger_names = <%= lnames.sort.inspect %>;
47
+ var typeahead_logger_levels = <%= Log4r::LNAMES.sort.inspect %>;
44
48
 
45
49
  jQuery(document).ready(function() {
46
50
  $('input[name="levels[][name]"]').typeahead({source: typeahead_logger_names})
@@ -1,3 +1,3 @@
1
1
  module Lumber
2
- VERSION = "0.11.1"
2
+ VERSION = "0.12.0"
3
3
  end
@@ -45,7 +45,7 @@ describe Lumber::LevelUtil do
45
45
  Log4r::Logger[@name].should == foo_logger
46
46
  end
47
47
 
48
- it "activate level on logger" do
48
+ it "activates level on logger" do
49
49
  Lumber.find_or_create_logger(@name)
50
50
  LevelUtil.set_levels({@name => "ERROR"})
51
51
  Log4r::Logger[@name].level.should == Log4r::LNAMES.index("DEBUG")
@@ -53,6 +53,20 @@ describe Lumber::LevelUtil do
53
53
  Log4r::Logger[@name].level.should == Log4r::LNAMES.index("ERROR")
54
54
  end
55
55
 
56
+ it "activates level on outputter" do
57
+ logger = Lumber.find_or_create_logger(@name)
58
+ sio = StringIO.new
59
+ outputter = Log4r::IOOutputter.new("sbout", sio)
60
+ logger.outputters = [outputter]
61
+
62
+ LevelUtil.set_levels({"sbout" => "ERROR"})
63
+ Log4r::Logger[@name].level.should == Log4r::LNAMES.index("DEBUG")
64
+ outputter.level.should == Log4r::LNAMES.index("DEBUG")
65
+ LevelUtil.activate_levels
66
+ Log4r::Logger[@name].level.should == Log4r::LNAMES.index("DEBUG")
67
+ outputter.level.should == Log4r::LNAMES.index("ERROR")
68
+ end
69
+
56
70
  it "restores levels when mapping expires" do
57
71
  Lumber.find_or_create_logger(@name)
58
72
  Log4r::Logger[@name].level.should == Log4r::LNAMES.index("DEBUG")
@@ -66,6 +80,42 @@ describe Lumber::LevelUtil do
66
80
  Log4r::Logger[@name].level.should == Log4r::LNAMES.index("DEBUG")
67
81
  end
68
82
 
83
+ it "restores levels on outputter when mapping expires" do
84
+ logger = Lumber.find_or_create_logger(@name)
85
+ sio = StringIO.new
86
+ outputter = Log4r::IOOutputter.new("sbout", sio)
87
+ logger.outputters = [outputter]
88
+
89
+ outputter.level.should == Log4r::LNAMES.index("DEBUG")
90
+
91
+ LevelUtil.set_levels({"sbout" => "ERROR"})
92
+ LevelUtil.activate_levels
93
+ outputter.level.should == Log4r::LNAMES.index("ERROR")
94
+
95
+ LevelUtil.set_levels({})
96
+ LevelUtil.activate_levels
97
+ outputter.level.should == Log4r::LNAMES.index("DEBUG")
98
+ end
99
+
100
+ it "doesn't set levels if already set" do
101
+ logger = Lumber.find_or_create_logger(@name)
102
+ sio = StringIO.new
103
+ outputter = Log4r::IOOutputter.new("sbout", sio)
104
+ logger.outputters = [outputter]
105
+
106
+ outputter.level.should == Log4r::LNAMES.index("DEBUG")
107
+ Log4r::Logger[@name].level.should == Log4r::LNAMES.index("DEBUG")
108
+
109
+ outputter.should_not_receive(:level=)
110
+ Log4r::Logger[@name].should_not_receive(:level=)
111
+
112
+ LevelUtil.set_levels({"sbout" => "DEBUG", @name => "DEBUG"})
113
+ LevelUtil.activate_levels
114
+
115
+ LevelUtil.set_levels({})
116
+ LevelUtil.activate_levels
117
+ end
118
+
69
119
  it "starts a monitor thread" do
70
120
  LevelUtil.set_levels({@name => "DEBUG"})
71
121
  LevelUtil.activate_levels
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-23 00:00:00.000000000 Z
12
+ date: 2012-05-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: log4r