steno 1.3.4 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/NOTICE +14 -0
  3. data/Rakefile +6 -7
  4. data/bin/steno-prettify +24 -25
  5. data/lib/steno/codec/base.rb +1 -1
  6. data/lib/steno/codec/json.rb +16 -19
  7. data/lib/steno/codec.rb +2 -2
  8. data/lib/steno/config.rb +22 -33
  9. data/lib/steno/context.rb +3 -3
  10. data/lib/steno/json_prettifier.rb +30 -29
  11. data/lib/steno/log_level.rb +1 -2
  12. data/lib/steno/logger.rb +22 -26
  13. data/lib/steno/record.rb +5 -15
  14. data/lib/steno/sink/base.rb +2 -3
  15. data/lib/steno/sink/counter.rb +4 -8
  16. data/lib/steno/sink/eventlog.rb +16 -17
  17. data/lib/steno/sink/fluentd.rb +4 -5
  18. data/lib/steno/sink/io.rb +8 -12
  19. data/lib/steno/sink/syslog.rb +15 -13
  20. data/lib/steno/sink.rb +6 -6
  21. data/lib/steno/tagged_logger.rb +2 -3
  22. data/lib/steno/version.rb +1 -1
  23. data/lib/steno.rb +16 -21
  24. data/spec/spec_helper.rb +4 -4
  25. data/spec/support/barrier.rb +2 -2
  26. data/spec/support/shared_context_specs.rb +4 -4
  27. data/spec/unit/config_spec.rb +87 -94
  28. data/spec/unit/context_spec.rb +17 -17
  29. data/spec/unit/core_ext_spec.rb +11 -11
  30. data/spec/unit/json_codec_spec.rb +26 -26
  31. data/spec/unit/json_prettifier_spec.rb +22 -22
  32. data/spec/unit/log_level_spec.rb +5 -6
  33. data/spec/unit/logger_spec.rb +39 -39
  34. data/spec/unit/record_spec.rb +10 -10
  35. data/spec/unit/sink/counter_spec.rb +7 -7
  36. data/spec/unit/sink/eventlog_spec.rb +14 -15
  37. data/spec/unit/sink/fluentd_spec.rb +26 -26
  38. data/spec/unit/sink/io_spec.rb +49 -49
  39. data/spec/unit/sink/syslog_spec.rb +43 -19
  40. data/spec/unit/steno_spec.rb +24 -24
  41. data/spec/unit/tagged_logger_spec.rb +12 -12
  42. data/steno.gemspec +28 -27
  43. metadata +61 -38
@@ -1,40 +1,40 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Steno::Logger do
4
- let(:logger) { Steno::Logger.new("test", []) }
4
+ let(:logger) { Steno::Logger.new('test', []) }
5
5
 
6
- it "should provide #level, #levelf, and #level? methods for each log level" do
6
+ it 'provides #level, #levelf, and #level? methods for each log level' do
7
7
  Steno::Logger::LEVELS.each do |name, _|
8
- [name, name.to_s + "f", name.to_s + "?"].each do |meth|
8
+ [name, name.to_s + 'f', name.to_s + '?'].each do |meth|
9
9
  expect(logger.respond_to?(meth)).to be_truthy
10
10
  end
11
11
  end
12
12
  end
13
13
 
14
- describe "#level_active?" do
15
- it "should return a boolean indicating if the level is enabled" do
14
+ describe '#level_active?' do
15
+ it 'returns a boolean indicating if the level is enabled' do
16
16
  expect(logger.level_active?(:error)).to be_truthy
17
17
  expect(logger.level_active?(:info)).to be_truthy
18
18
  expect(logger.level_active?(:debug)).to be_falsey
19
19
  end
20
20
  end
21
21
 
22
- describe "#<level>?" do
23
- it "should return a boolean indiciating if <level> is enabled" do
22
+ describe '#<level>?' do
23
+ it 'returns a boolean indiciating if <level> is enabled' do
24
24
  expect(logger.error?).to be_truthy
25
25
  expect(logger.info?).to be_truthy
26
26
  expect(logger.debug?).to be_falsey
27
27
  end
28
28
  end
29
29
 
30
- describe "#level" do
31
- it "should return the name of the currently active level" do
30
+ describe '#level' do
31
+ it 'returns the name of the currently active level' do
32
32
  expect(logger.level).to eq(:info)
33
33
  end
34
34
  end
35
35
 
36
- describe "#level=" do
37
- it "should allow the level to be changed" do
36
+ describe '#level=' do
37
+ it 'allows the level to be changed' do
38
38
  logger.level = :warn
39
39
  expect(logger.level).to eq(:warn)
40
40
  expect(logger.level_active?(:info)).to be_falsey
@@ -42,60 +42,60 @@ describe Steno::Logger do
42
42
  end
43
43
  end
44
44
 
45
- describe "#log" do
46
- it "should not forward any messages for levels that are inactive" do
47
- sink = double("sink")
48
- expect(sink).to_not receive(:add_record)
45
+ describe '#log' do
46
+ it 'does not forward any messages for levels that are inactive' do
47
+ sink = double('sink')
48
+ expect(sink).not_to receive(:add_record)
49
49
 
50
- my_logger = Steno::Logger.new("test", [sink])
50
+ my_logger = Steno::Logger.new('test', [sink])
51
51
 
52
- my_logger.debug("test")
52
+ my_logger.debug('test')
53
53
  end
54
54
 
55
- it "should forward messages for levels that are active" do
56
- sink = double("sink")
57
- expect(sink).to receive(:add_record).with(any_args())
55
+ it 'forwards messages for levels that are active' do
56
+ sink = double('sink')
57
+ expect(sink).to receive(:add_record).with(any_args)
58
58
 
59
- my_logger = Steno::Logger.new("test", [sink])
59
+ my_logger = Steno::Logger.new('test', [sink])
60
60
 
61
- my_logger.warn("test")
61
+ my_logger.warn('test')
62
62
  end
63
63
 
64
- it "should not invoke a supplied block if the level is inactive" do
64
+ it 'does not invoke a supplied block if the level is inactive' do
65
65
  invoked = false
66
66
  logger.debug { invoked = true }
67
67
  expect(invoked).to be_falsey
68
68
  end
69
69
 
70
- it "should invoke a supplied block if the level is active" do
70
+ it 'invokes a supplied block if the level is active' do
71
71
  invoked = false
72
72
  logger.warn { invoked = true }
73
73
  expect(invoked).to be_truthy
74
74
  end
75
75
 
76
- it "creates a record with the proper level" do
77
- sink = double("sink")
78
- expect(Steno::Record).to receive(:new).with("test", :warn, "message", anything, anything).and_call_original
76
+ it 'creates a record with the proper level' do
77
+ sink = double('sink')
78
+ expect(Steno::Record).to receive(:new).with('test', :warn, 'message', anything, anything).and_call_original
79
79
  allow(sink).to receive(:add_record)
80
80
 
81
- my_logger = Steno::Logger.new("test", [sink])
81
+ my_logger = Steno::Logger.new('test', [sink])
82
82
 
83
- my_logger.warn("message")
83
+ my_logger.warn('message')
84
84
  end
85
85
  end
86
86
 
87
- describe "#logf" do
88
- it "should format messages according to the supplied format string" do
89
- expect(logger).to receive(:log).with(:debug, "test 1 2.20")
90
- logger.debugf("test %d %0.2f", 1, 2.2)
87
+ describe '#logf' do
88
+ it 'formats messages according to the supplied format string' do
89
+ expect(logger).to receive(:log).with(:debug, 'test 1 2.20')
90
+ logger.debugf('test %d %0.2f', 1, 2.2)
91
91
  end
92
92
  end
93
93
 
94
- describe "#tag" do
95
- it "should return a tagged logger" do
96
- tagged_logger = logger.tag("foo" => "bar")
97
- expect(tagged_logger).to_not be_nil
98
- expect(tagged_logger.user_data).to eq({ "foo" => "bar" })
94
+ describe '#tag' do
95
+ it 'returns a tagged logger' do
96
+ tagged_logger = logger.tag('foo' => 'bar')
97
+ expect(tagged_logger).not_to be_nil
98
+ expect(tagged_logger.user_data).to eq({ 'foo' => 'bar' })
99
99
  end
100
100
  end
101
101
  end
@@ -1,30 +1,30 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Steno::Record do
4
- let(:message) { Array("test message") }
5
- let(:record) { Steno::Record.new("test", :info, message) }
4
+ let(:message) { Array('test message') }
5
+ let(:record) { Steno::Record.new('test', :info, message) }
6
6
 
7
- it "should set the process id" do
7
+ it 'sets the process id' do
8
8
  expect(record.process_id).to eq(Process.pid)
9
9
  end
10
10
 
11
- it "should set the thread id" do
11
+ it 'sets the thread id' do
12
12
  expect(record.thread_id).to eq(Thread.current.object_id)
13
13
  end
14
14
 
15
- it "should set the fiber id(if available)", :needs_fibers => true do
15
+ it 'sets the fiber id(if available)', :needs_fibers do
16
16
  expect(record.fiber_id).to eq(Fiber.current.object_id)
17
17
  end
18
18
 
19
- it "should set the source" do
20
- expect(record.source).to eq("test")
19
+ it 'sets the source' do
20
+ expect(record.source).to eq('test')
21
21
  end
22
22
 
23
- it "should stringify the message" do
23
+ it 'stringifies the message' do
24
24
  expect(record.message).to be_a(String)
25
25
  end
26
26
 
27
- it "should use a UTC timestamp" do
27
+ it 'uses a UTC timestamp' do
28
28
  expect(record.timestamp.to_f).to be_within(0.1).of(Time.now.utc.to_f)
29
29
  end
30
30
  end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Steno::Sink::Counter do
4
4
  let(:level) do
@@ -6,11 +6,11 @@ describe Steno::Sink::Counter do
6
6
  end
7
7
 
8
8
  let(:record) do
9
- Steno::Record.new("source", level.name, "message")
9
+ Steno::Record.new('source', level.name, 'message')
10
10
  end
11
11
 
12
- describe "add_record" do
13
- it "counts added records" do
12
+ describe 'add_record' do
13
+ it 'counts added records' do
14
14
  expect(subject.counts).to be_empty
15
15
  subject.add_record(record)
16
16
  expect(subject.counts.size).to eq 1
@@ -18,10 +18,10 @@ describe Steno::Sink::Counter do
18
18
  end
19
19
  end
20
20
 
21
- describe "to_json" do
22
- it "produces a valid json representation" do
21
+ describe 'to_json' do
22
+ it 'produces a valid json representation' do
23
23
  subject.add_record(record)
24
24
  expect(subject.to_json).to match '"info":1'
25
25
  end
26
26
  end
27
- end
27
+ end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
  if Steno::Sink::WINDOWS
3
3
  describe Steno::Sink::Eventlog do
4
4
  let(:level) do
@@ -6,34 +6,33 @@ if Steno::Sink::WINDOWS
6
6
  end
7
7
 
8
8
  let(:record) do
9
- Steno::Record.new("source", level.name, "message")
9
+ Steno::Record.new('source', level.name, 'message')
10
10
  end
11
11
 
12
- describe "#add_record" do
13
-
14
- it "should append an encoded record with the correct priority" do
15
- eventlog = double("Win32::EventLog")
16
- Win32::EventLog.should_receive(:open) \
17
- .with('Application') \
18
- .and_return(eventlog)
12
+ describe '#add_record' do
13
+ it 'appends an encoded record with the correct priority' do
14
+ eventlog = double('Win32::EventLog')
15
+ Win32::EventLog.should_receive(:open)
16
+ .with('Application')
17
+ .and_return(eventlog)
19
18
 
20
19
  sink = Steno::Sink::Eventlog.instance
21
20
  sink.open
22
21
 
23
- codec = double("codec")
22
+ codec = double('codec')
24
23
  codec.should_receive(:encode_record).with(record).and_return(record.message)
25
24
  sink.codec = codec
26
25
 
27
- eventlog.should_receive(:report_event).with(:source => "CloudFoundry",
28
- :event_type => Win32::EventLog::INFO_TYPE,
29
- :data => record.message)
26
+ eventlog.should_receive(:report_event).with(source: 'CloudFoundry',
27
+ event_type: Win32::EventLog::INFO_TYPE,
28
+ data: record.message)
30
29
 
31
30
  sink.add_record(record)
32
31
  end
33
32
  end
34
33
 
35
- describe "#flush" do
36
- it "should do nothing" do
34
+ describe '#flush' do
35
+ it 'does nothing' do
37
36
  Steno::Sink::Eventlog.instance.flush
38
37
  end
39
38
  end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Steno::Sink::IO do
4
4
  let(:level) do
@@ -6,40 +6,40 @@ describe Steno::Sink::IO do
6
6
  end
7
7
 
8
8
  let(:record) do
9
- Steno::Record.new("source", level.name, "message")
9
+ Steno::Record.new('source', level.name, 'message')
10
10
  end
11
11
 
12
- describe "#initialize" do
13
- it "should initialize FluentLogger with the default option" do
14
- expect(Fluent::Logger::FluentLogger).to receive(:new).with("steno", {
15
- :host => "127.0.0.1",
16
- :port => 24224,
17
- :buffer_limit => Fluent::Logger::FluentLogger::BUFFER_LIMIT,
18
- }).and_return(nil)
19
- sink = Steno::Sink::Fluentd.new()
12
+ describe '#initialize' do
13
+ it 'initializes FluentLogger with the default option' do
14
+ expect(Fluent::Logger::FluentLogger).to receive(:new).with('steno', {
15
+ host: '127.0.0.1',
16
+ port: 24_224,
17
+ buffer_limit: Fluent::Logger::FluentLogger::BUFFER_LIMIT
18
+ }).and_return(nil)
19
+ sink = Steno::Sink::Fluentd.new
20
20
  end
21
21
 
22
- it "should initialize FliuentLogger with override options" do
23
- expect(Fluent::Logger::FluentLogger).to receive(:new).with("vcap", {
24
- :host => "localhost",
25
- :port => 8080,
26
- :buffer_limit => 1024,
27
- }).and_return(nil)
22
+ it 'initializes FliuentLogger with override options' do
23
+ expect(Fluent::Logger::FluentLogger).to receive(:new).with('vcap', {
24
+ host: 'localhost',
25
+ port: 8080,
26
+ buffer_limit: 1024
27
+ }).and_return(nil)
28
28
  sink = Steno::Sink::Fluentd.new({
29
- :tag_prefix => "vcap",
30
- :host => "localhost",
31
- :port => 8080,
32
- :buffer_limit => 1024
33
- })
29
+ tag_prefix: 'vcap',
30
+ host: 'localhost',
31
+ port: 8080,
32
+ buffer_limit: 1024
33
+ })
34
34
  end
35
35
  end
36
36
 
37
- describe "#add_record" do
38
- it "should post an record with the correct tag" do
39
- fluentd = double("fluentd")
37
+ describe '#add_record' do
38
+ it 'posts an record with the correct tag' do
39
+ fluentd = double('fluentd')
40
40
  expect(Fluent::Logger::FluentLogger).to receive(:new).and_return(fluentd)
41
- expect(fluentd).to receive(:post).with("source", record)
42
- sink = Steno::Sink::Fluentd.new()
41
+ expect(fluentd).to receive(:post).with('source', record)
42
+ sink = Steno::Sink::Fluentd.new
43
43
  sink.add_record(record)
44
44
  end
45
45
  end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Steno::Sink::IO do
4
4
  let(:level) do
@@ -6,103 +6,103 @@ describe Steno::Sink::IO do
6
6
  end
7
7
 
8
8
  let(:record) do
9
- Steno::Record.new("source", level.name, "message")
9
+ Steno::Record.new('source', level.name, 'message')
10
10
  end
11
11
 
12
- describe ".for_file" do
13
- it "should return a new sink configured to append to the file at path with autosync set to true by default" do
14
- mock_handle = double("file handle")
12
+ describe '.for_file' do
13
+ it 'returns a new sink configured to append to the file at path with autosync set to true by default' do
14
+ mock_handle = double('file handle')
15
15
 
16
- expect(File).to receive(:open).with("path", "a+").and_return(mock_handle)
16
+ expect(File).to receive(:open).with('path', 'a+').and_return(mock_handle)
17
17
  expect(mock_handle).to receive(:sync=).with(true)
18
18
 
19
- mock_sink = double("sink")
19
+ mock_sink = double('sink')
20
20
  expect(Steno::Sink::IO).to receive(:new).with(mock_handle,
21
- :max_retries => 10).
22
- and_return(mock_sink)
21
+ max_retries: 10)
22
+ .and_return(mock_sink)
23
23
 
24
- returned = Steno::Sink::IO.for_file("path",
25
- :max_retries => 10)
24
+ returned = Steno::Sink::IO.for_file('path',
25
+ max_retries: 10)
26
26
  expect(returned).to eq(mock_sink)
27
27
  end
28
28
 
29
- it "should return a new sink configured to append to the file at path with specified options" do
30
- mock_handle = double("file handle")
29
+ it 'returns a new sink configured to append to the file at path with specified options' do
30
+ mock_handle = double('file handle')
31
31
 
32
- expect(File).to receive(:open).with("path", "a+").and_return(mock_handle)
32
+ expect(File).to receive(:open).with('path', 'a+').and_return(mock_handle)
33
33
  expect(mock_handle).to receive(:sync=).with(false)
34
34
 
35
- mock_sink = double("sink")
35
+ mock_sink = double('sink')
36
36
  expect(Steno::Sink::IO).to receive(:new).with(mock_handle,
37
- :max_retries => 10).
38
- and_return(mock_sink)
37
+ max_retries: 10)
38
+ .and_return(mock_sink)
39
39
 
40
- returned = Steno::Sink::IO.for_file("path",
41
- :autoflush => false,
42
- :max_retries => 10)
40
+ returned = Steno::Sink::IO.for_file('path',
41
+ autoflush: false,
42
+ max_retries: 10)
43
43
  expect(returned).to eq(mock_sink)
44
44
  end
45
45
  end
46
46
 
47
- describe "#add_record" do
48
- it "should encode the record and write it to the underlying io object" do
49
- codec = double("codec")
47
+ describe '#add_record' do
48
+ it 'encodes the record and write it to the underlying io object' do
49
+ codec = double('codec')
50
50
  expect(codec).to receive(:encode_record).with(record).and_return(record.message)
51
51
 
52
- io = double("io")
52
+ io = double('io')
53
53
  expect(io).to receive(:write).with(record.message)
54
54
 
55
- Steno::Sink::IO.new(io, :codec => codec).add_record(record)
55
+ Steno::Sink::IO.new(io, codec: codec).add_record(record)
56
56
  end
57
57
 
58
- it "should by default not retry on IOError" do
59
- codec = double("codec")
58
+ it 'bies default not retry on IOError' do
59
+ codec = double('codec')
60
60
  expect(codec).to receive(:encode_record).with(record).and_return(record.message)
61
61
 
62
- io = double("io")
62
+ io = double('io')
63
63
 
64
64
  expect(io).to receive(:write).with(record.message).ordered.and_raise(IOError)
65
65
 
66
66
  expect do
67
- Steno::Sink::IO.new(io, :codec => codec).add_record(record)
67
+ Steno::Sink::IO.new(io, codec: codec).add_record(record)
68
68
  end.to raise_error(IOError)
69
69
  end
70
70
 
71
- it "should retry not more than specified number of times on IOError" do
72
- codec = double("codec")
71
+ it 'retries not more than specified number of times on IOError' do
72
+ codec = double('codec')
73
73
  expect(codec).to receive(:encode_record).with(record).and_return(record.message)
74
74
 
75
- io = double("io")
75
+ io = double('io')
76
76
 
77
- expect(io).to receive(:write).exactly(3).times.with(record.message).
78
- and_raise(IOError)
77
+ expect(io).to receive(:write).exactly(3).times.with(record.message)
78
+ .and_raise(IOError)
79
79
 
80
80
  expect do
81
- Steno::Sink::IO.new(io, :codec => codec, :max_retries => 2).
82
- add_record(record)
81
+ Steno::Sink::IO.new(io, codec: codec, max_retries: 2)
82
+ .add_record(record)
83
83
  end.to raise_error(IOError)
84
84
  end
85
85
 
86
- it "should retry on IOError and succeed" do
87
- codec = double("codec")
86
+ it 'retries on IOError and succeed' do
87
+ codec = double('codec')
88
88
  expect(codec).to receive(:encode_record).with(record).and_return(record.message)
89
89
 
90
- io = double("io")
91
- expect(io).to receive(:write).with(record.message).once.
92
- and_raise(IOError)
93
- expect(io).to receive(:write).with(record.message).once.ordered.
94
- and_return(record.message)
90
+ io = double('io')
91
+ expect(io).to receive(:write).with(record.message).once
92
+ .and_raise(IOError)
93
+ expect(io).to receive(:write).with(record.message).once.ordered
94
+ .and_return(record.message)
95
95
 
96
96
  expect do
97
- Steno::Sink::IO.new(io, :codec => codec, :max_retries => 1).
98
- add_record(record)
99
- end.to_not raise_error
97
+ Steno::Sink::IO.new(io, codec: codec, max_retries: 1)
98
+ .add_record(record)
99
+ end.not_to raise_error
100
100
  end
101
101
  end
102
102
 
103
- describe "#flush" do
104
- it "should call flush on the underlying io object" do
105
- io = double("io")
103
+ describe '#flush' do
104
+ it 'calls flush on the underlying io object' do
105
+ io = double('io')
106
106
  expect(io).to receive(:flush)
107
107
 
108
108
  Steno::Sink::IO.new(io).flush
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
  unless Steno::Sink::WINDOWS
3
3
  describe Steno::Sink::Syslog do
4
4
  let(:level) do
@@ -6,50 +6,50 @@ unless Steno::Sink::WINDOWS
6
6
  end
7
7
 
8
8
  let(:record) do
9
- Steno::Record.new("source", level.name, "message")
9
+ Steno::Record.new('source', level.name, 'message')
10
10
  end
11
11
 
12
12
  let(:record_with_big_message) do
13
- Steno::Record.new("source", level.name,
14
- "a" * (Steno::Sink::Syslog::MAX_MESSAGE_SIZE + 1))
13
+ Steno::Record.new('source', level.name,
14
+ 'a' * (Steno::Sink::Syslog::MAX_MESSAGE_SIZE + 1))
15
15
  end
16
16
 
17
- describe "#add_record" do
17
+ describe '#add_record' do
18
18
  after do
19
19
  Syslog::Logger.syslog = nil
20
20
  end
21
21
 
22
- it "should append an encoded record with the correct priority" do
23
- identity = "test"
22
+ it 'appends an encoded record with the correct priority' do
23
+ identity = 'test'
24
24
 
25
- syslog = double("syslog", facility: nil)
25
+ syslog = double('syslog', facility: nil)
26
26
  expect(Syslog).to receive(:open).and_return(syslog)
27
27
 
28
28
  sink = Steno::Sink::Syslog.instance
29
29
  sink.open(identity)
30
30
 
31
- codec = double("codec")
31
+ codec = double('codec')
32
32
  expect(codec).to receive(:encode_record).with(record).and_return(record.message)
33
33
  sink.codec = codec
34
34
 
35
- expect(syslog).to receive(:log).with(Syslog::LOG_INFO, "%s", record.message)
35
+ expect(syslog).to receive(:log).with(Syslog::LOG_INFO, '%s', record.message)
36
36
 
37
37
  sink.add_record(record)
38
38
  end
39
39
 
40
- it "should truncate the record message if its greater than than allowed size" do
41
- identity = "test"
40
+ it 'truncates the record message if its greater than than allowed size' do
41
+ identity = 'test'
42
42
 
43
- syslog = double("syslog", facility: nil)
43
+ syslog = double('syslog', facility: nil)
44
44
  expect(Syslog).to receive(:open).and_return(syslog)
45
45
 
46
46
  sink = Steno::Sink::Syslog.instance
47
47
  sink.open(identity)
48
48
 
49
- truncated = record_with_big_message.message.
50
- slice(0..(Steno::Sink::Syslog::MAX_MESSAGE_SIZE) - 4)
49
+ truncated = record_with_big_message.message
50
+ .slice(0..Steno::Sink::Syslog::MAX_MESSAGE_SIZE - 4)
51
51
  truncated << Steno::Sink::Syslog::TRUNCATE_POSTFIX
52
- codec = double("codec")
52
+ codec = double('codec')
53
53
  expect(codec).to receive(:encode_record) do |*args|
54
54
  expect(args.size).to eq(1)
55
55
  expect(args[0].message).to eq(truncated)
@@ -60,14 +60,38 @@ unless Steno::Sink::WINDOWS
60
60
 
61
61
  sink.codec = codec
62
62
 
63
- expect(syslog).to receive(:log).with(Syslog::LOG_INFO, "%s", truncated)
63
+ expect(syslog).to receive(:log).with(Syslog::LOG_INFO, '%s', truncated)
64
64
 
65
65
  sink.add_record(record_with_big_message)
66
66
  end
67
+
68
+ context 'when level is off' do
69
+ let(:level) do
70
+ Steno::Logger.lookup_level(:off)
71
+ end
72
+
73
+ it 'does not write out logs' do
74
+ identity = 'test'
75
+
76
+ syslog = double('syslog', facility: nil, log: nil)
77
+ expect(Syslog).to receive(:open).and_return(syslog)
78
+
79
+ sink = Steno::Sink::Syslog.instance
80
+ sink.open(identity)
81
+
82
+ codec = double('codec', encode_record: nil)
83
+ sink.codec = codec
84
+
85
+ sink.add_record(record)
86
+
87
+ expect(codec).not_to have_received(:encode_record)
88
+ expect(syslog).not_to have_received(:log)
89
+ end
90
+ end
67
91
  end
68
92
 
69
- describe "#flush" do
70
- it "should do nothing" do
93
+ describe '#flush' do
94
+ it 'does nothing' do
71
95
  Steno::Sink::Syslog.instance.flush
72
96
  end
73
97
  end