termite 0.0.10 → 0.0.20

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.
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__), "test_helper.rb")
2
2
 
3
- class EcologyLogTest < Scope::TestCase
3
+ class StderrLogTest < Scope::TestCase
4
4
  context "with a custom ecology" do
5
5
  setup do
6
6
  Ecology.reset
@@ -10,7 +10,8 @@ class EcologyLogTest < Scope::TestCase
10
10
  "application": "MyApp",
11
11
  "logging": {
12
12
  "stdout_level": "warn",
13
- "stderr_level": "fatal"
13
+ "stderr_level": "fatal",
14
+ "stdout_color": "green"
14
15
  }
15
16
  }
16
17
  ECOLOGY_CONTENTS
@@ -18,17 +19,21 @@ ECOLOGY_CONTENTS
18
19
 
19
20
  context "with a default termite logger" do
20
21
  setup do
22
+ @stdout_logger = mock("STDOUT logger")
23
+ ::Logger.expects(:new).with(STDOUT).returns(@stdout_logger)
24
+ @stderr_logger = mock("STDERR logger")
25
+ ::Logger.expects(:new).with(STDERR).returns(@stderr_logger)
21
26
  @logger = Termite::Logger.new
22
27
  end
23
28
 
24
- should "log fatal errors to STDERR" do
25
- expect_console_add(STDERR, 2, 'oh no!', :application => "MyApp", :method => :puts, :extra_args => [])
29
+ should "log fatal errors to STDERR with default color" do
30
+ @stderr_logger.expects(:<<).with("oh no!\n".color(:red))
26
31
  STDOUT.expects(:puts).never
27
32
  @logger.fatal("oh no!")
28
33
  end
29
34
 
30
- should "log warnings to STDOUT" do
31
- expect_console_add(STDOUT, 4, 'oh no!', :application => "MyApp", :method => :puts, :extra_args => [])
35
+ should "log warnings to STDOUT with overridden color" do
36
+ @stdout_logger.expects(:<<).with("oh no!\n".color(:green))
32
37
  STDERR.expects(:puts).never
33
38
  @logger.warn("oh no!")
34
39
  end
@@ -8,7 +8,11 @@ class TermiteLoggerTest < Scope::TestCase
8
8
 
9
9
  set_up_ecology <<ECOLOGY_TEXT
10
10
  {
11
- "application": "foo_app"
11
+ "application": "foo_app",
12
+ "logging":
13
+ {
14
+ "default_component": "whatcomponent"
15
+ }
12
16
  }
13
17
  ECOLOGY_TEXT
14
18
  end
@@ -20,47 +24,47 @@ ECOLOGY_TEXT
20
24
  end
21
25
 
22
26
  should "correctly send logs to Syslog" do
23
- expect_add(@logger.socket, 2, "foo! {}")
27
+ expect_add(2, "foo! {}")
24
28
  @logger.add(Logger::FATAL, "foo!", {})
25
29
  end
26
30
 
27
31
  should "correctly alias log to add" do
28
- expect_add(@logger.socket, 2, "foo! {}")
32
+ expect_add(2, "foo! {}")
29
33
  @logger.log(Logger::FATAL, "foo!", {})
30
34
  end
31
35
 
32
36
  should "treat << as add-with-info" do
33
- expect_add(@logger.socket, 6, "foo! {}")
37
+ expect_add(6, "foo! {}")
34
38
  @logger << "foo!"
35
39
  end
36
40
 
37
41
  should "correctly send an alert to Syslog" do
38
- expect_add(@logger.socket, 1, "foo! {}")
42
+ expect_add(1, "foo! {}")
39
43
  @logger.add(Logger::UNKNOWN, "foo!", {})
40
44
  end
41
45
 
42
46
  should "correctly send a critical event to Syslog" do
43
- expect_add(@logger.socket, 2, "foo! {}")
47
+ expect_add(2, "foo! {}")
44
48
  @logger.fatal("foo!")
45
49
  end
46
50
 
47
51
  should "correctly send an error event to Syslog" do
48
- expect_add(@logger.socket, 3, "foo! {}")
52
+ expect_add(3, "foo! {}")
49
53
  @logger.error("foo!")
50
54
  end
51
55
 
52
56
  should "correctly send a warning event to Syslog" do
53
- expect_add(@logger.socket, 4, "foo! {}")
57
+ expect_add(4, "foo! {}")
54
58
  @logger.warn("foo!")
55
59
  end
56
60
 
57
61
  should "correctly send an info event to Syslog" do
58
- expect_add(@logger.socket, 6, "foo! {}")
62
+ expect_add(6, "foo! {}")
59
63
  @logger.info("foo!")
60
64
  end
61
65
 
62
66
  should "correctly send a debug event to Syslog" do
63
- expect_add(@logger.socket, 7, "foo! {}")
67
+ expect_add(7, "foo! {}")
64
68
  @logger.debug("foo!")
65
69
  end
66
70
  end
@@ -70,14 +74,19 @@ ECOLOGY_TEXT
70
74
  @logger = Termite::Logger.new("/tmp/test_log_output.txt") # Test with output file
71
75
  end
72
76
 
73
- should "allow overriding application name" do
74
- expect_add(@logger.socket, 2, "foo! {}", :application => "bar_app")
77
+ should "override application name from ecology" do
78
+ expect_add(2, "foo! {}", :application => "bar_app:whatcomponent")
75
79
  @logger.fatal("foo!", {}, :application => "bar_app")
76
80
  end
77
81
 
78
- should "allow setting a component" do
79
- expect_add(@logger.socket, 2, "foo! {}", :application => "foo_app:whatcomponent")
80
- @logger.fatal("foo!", {}, :component => "whatcomponent")
82
+ should "override component from ecology" do
83
+ expect_add(2, "foo! {}", :application => "foo_app:thatcomponent")
84
+ @logger.fatal("foo!", {}, :component => "thatcomponent")
85
+ end
86
+
87
+ should "override application and component from ecology" do
88
+ expect_add(2, "foo! {}", :application => "bar_app:thatcomponent")
89
+ @logger.fatal("foo!", {}, :application => "bar_app", :component => "thatcomponent")
81
90
  end
82
91
  end
83
92
 
@@ -21,7 +21,7 @@ ECOLOGY_TEXT
21
21
  end
22
22
 
23
23
  should "correctly send logs to Syslog" do
24
- @logger.socket.expects(:send)
24
+ expect_add(2, "foo! {}", :application => "foo_app")
25
25
  @logger.add(Logger::FATAL, "foo!", {})
26
26
  end
27
27
  end
@@ -7,13 +7,10 @@ require "minitest/autorun"
7
7
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
8
8
 
9
9
  require "termite"
10
+ require "ecology/test_methods"
10
11
 
11
12
  class Scope::TestCase
12
- def set_up_ecology(file_contents, filename = "some.ecology")
13
- ENV["ECOLOGY_SPEC"] = filename
14
- File.expects(:exist?).with(filename).returns(true)
15
- File.expects(:read).with(filename).returns(file_contents)
16
- end
13
+ include Ecology::Test
17
14
 
18
15
  def initialize_environment
19
16
  unless @initialized_test_env
@@ -28,12 +25,20 @@ class Scope::TestCase
28
25
 
29
26
  # This adds the Mocha expectation for this call. Technically it also
30
27
  # returns the expectation, so you could modify it later if you wanted.
31
- def expect_add(socket, severity_num, message, options = {})
28
+ def expect_add(severity_num, message, options = {})
32
29
  initialize_environment
33
30
 
34
- app = options[:application] || "foo_app"
35
- string = "<#{Syslog::LOG_LOCAL6 + severity_num}>Sep 7 15:09:20 samplehost #{app} [1234]: [main] #{message}"
31
+ app = options[:application] || "foo_app:whatcomponent"
32
+ syslog_mock = mock("Syslog connection")
33
+ Syslog.expects(:open).with(app, Syslog::LOG_PID | Syslog::LOG_CONS).yields(syslog_mock)
36
34
 
35
+ syslog_mock.expects(Termite::Logger::SYSLOG_SEVERITY_MAP.invert[severity_num]).with(message)
36
+ end
37
+
38
+ def expect_udp(socket, severity_num, message, options = {})
39
+ initialize_environment
40
+ app = options[:application] || "foo_app:whatcomponent"
41
+ string = "<#{Syslog::LOG_LOCAL6 + severity_num}>Sep 7 15:09:20 samplehost #{app} [1234]: [main] #{message}"
37
42
  options[:method] ||= :send
38
43
  options[:extra_args] ||= [0, "0.0.0.0", 514]
39
44
  socket.expects(options[:method]).with(string, *options[:extra_args])
@@ -46,6 +51,6 @@ class Scope::TestCase
46
51
 
47
52
  options[:method] ||= :send
48
53
  options[:extra_args] ||= [0, "0.0.0.0", 514]
49
- socket.expects(options[:method]).with(message, *options[:extra_args])
54
+ socket.expects(:<<).with(message + "\n", *options[:extra_args])
50
55
  end
51
56
  end
metadata CHANGED
@@ -1,99 +1,144 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: termite
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.20
4
5
  prerelease:
5
- version: 0.0.10
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Noah Gibbs
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-09-30 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: multi_json
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-06-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: ecology
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.6
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: ecology
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
30
25
  none: false
31
- requirements:
26
+ requirements:
32
27
  - - ~>
33
- - !ruby/object:Gem::Version
28
+ - !ruby/object:Gem::Version
34
29
  version: 0.0.6
30
+ - !ruby/object:Gem::Dependency
31
+ name: multi_json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
35
38
  type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: bundler
39
39
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
- requirements:
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rainbow
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.1.3
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
43
59
  - - ~>
44
- - !ruby/object:Gem::Version
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
45
69
  version: 1.0.10
46
70
  type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: scope
50
71
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.10
78
+ - !ruby/object:Gem::Dependency
79
+ name: scope
80
+ requirement: !ruby/object:Gem::Requirement
52
81
  none: false
53
- requirements:
82
+ requirements:
54
83
  - - ~>
55
- - !ruby/object:Gem::Version
84
+ - !ruby/object:Gem::Version
56
85
  version: 0.2.1
57
86
  type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: mocha
61
87
  prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.2.1
94
+ - !ruby/object:Gem::Dependency
95
+ name: mocha
96
+ requirement: !ruby/object:Gem::Requirement
63
97
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
68
102
  type: :development
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: rake
72
103
  prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
74
113
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: "0"
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
79
118
  type: :development
80
- version_requirements: *id006
81
- description: |
82
- Termite wraps syslog with a format for extra data, and for
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ description: ! 'Termite wraps syslog with a format for extra data, and for
127
+
83
128
  what you wish it would send automatically.
84
129
 
85
- email:
130
+ '
131
+ email:
86
132
  - noah@ooyala.com
87
133
  executables: []
88
-
89
134
  extensions: []
90
-
91
135
  extra_rdoc_files: []
92
-
93
- files:
136
+ files:
94
137
  - Gemfile
95
- - Gemfile.lock
138
+ - lib/termite/hastur_logger.rb
139
+ - lib/termite/syslog_logger.rb
96
140
  - lib/termite/version.rb
141
+ - lib/termite/version.rb~
97
142
  - lib/termite.rb
98
143
  - LICENSE
99
144
  - Rakefile
@@ -101,8 +146,11 @@ files:
101
146
  - termite.gemspec
102
147
  - test/ecology_log_test.rb
103
148
  - test/extra_logger_test.rb
149
+ - test/hastur_logger_test.rb
150
+ - test/level_test.rb
104
151
  - test/log_locally.rb
105
152
  - test/rescue_test.rb
153
+ - test/sinks_test.rb
106
154
  - test/stderr_log_test.rb
107
155
  - test/termite_logger_test.rb
108
156
  - test/termite_subclass_test.rb
@@ -111,37 +159,38 @@ files:
111
159
  - .gitignore
112
160
  homepage: http://www.ooyala.com
113
161
  licenses: []
114
-
115
162
  post_install_message:
116
163
  rdoc_options: []
117
-
118
- require_paths:
164
+ require_paths:
119
165
  - lib
120
- required_ruby_version: !ruby/object:Gem::Requirement
166
+ required_ruby_version: !ruby/object:Gem::Requirement
121
167
  none: false
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: "0"
126
- required_rubygems_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
173
  none: false
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: "0"
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
132
178
  requirements: []
133
-
134
179
  rubyforge_project: termite
135
- rubygems_version: 1.8.10
180
+ rubygems_version: 1.8.24
136
181
  signing_key:
137
182
  specification_version: 3
138
183
  summary: Ruby logging based on Syslog
139
- test_files:
184
+ test_files:
140
185
  - test/ecology_log_test.rb
141
186
  - test/extra_logger_test.rb
187
+ - test/hastur_logger_test.rb
188
+ - test/level_test.rb
142
189
  - test/log_locally.rb
143
190
  - test/rescue_test.rb
191
+ - test/sinks_test.rb
144
192
  - test/stderr_log_test.rb
145
193
  - test/termite_logger_test.rb
146
194
  - test/termite_subclass_test.rb
147
195
  - test/test_helper.rb
196
+ has_rdoc: