termite 0.0.10 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: