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,4 +1,4 @@
1
- require "steno/sink/base"
1
+ require 'steno/sink/base'
2
2
 
3
3
  module Steno
4
4
  module Sink
@@ -6,7 +6,6 @@ module Steno
6
6
  end
7
7
 
8
8
  class Steno::Sink::Counter < Steno::Sink::Base
9
-
10
9
  def initialize
11
10
  # Map of String -> numeric count
12
11
  @counts = {}
@@ -17,17 +16,14 @@ class Steno::Sink::Counter < Steno::Sink::Base
17
16
  level = record.log_level.to_s
18
17
 
19
18
  @mutex.synchronize do
20
- unless @counts[level]
21
- @counts[level] = 0
22
- end
19
+ @counts[level] = 0 unless @counts[level]
23
20
  @counts[level] += 1
24
21
  end
25
22
  end
26
23
 
27
- def flush
28
- end
24
+ def flush; end
29
25
 
30
- def to_json
26
+ def to_json(*_args)
31
27
  hash = {}
32
28
  @mutex.synchronize do
33
29
  Steno::Logger::LEVELS.keys.each do |level_name|
@@ -1,21 +1,21 @@
1
1
  if Steno::Sink::WINDOWS
2
- require "steno/sink/base"
2
+ require 'steno/sink/base'
3
3
 
4
- require "singleton"
5
- require "thread"
4
+ require 'singleton'
5
+ require 'thread'
6
6
  require 'win32/eventlog'
7
7
 
8
8
  class Steno::Sink::Eventlog < Steno::Sink::Base
9
9
  include Singleton
10
10
 
11
11
  LOG_LEVEL_MAP = {
12
- :fatal => Win32::EventLog::ERROR_TYPE,
13
- :error => Win32::EventLog::ERROR_TYPE,
14
- :warn => Win32::EventLog::WARN_TYPE,
15
- :info => Win32::EventLog::INFO_TYPE,
16
- :debug => Win32::EventLog::INFO_TYPE,
17
- :debug1 => Win32::EventLog::INFO_TYPE,
18
- :debug2 => Win32::EventLog::INFO_TYPE,
12
+ fatal: Win32::EventLog::ERROR_TYPE,
13
+ error: Win32::EventLog::ERROR_TYPE,
14
+ warn: Win32::EventLog::WARN_TYPE,
15
+ info: Win32::EventLog::INFO_TYPE,
16
+ debug: Win32::EventLog::INFO_TYPE,
17
+ debug1: Win32::EventLog::INFO_TYPE,
18
+ debug2: Win32::EventLog::INFO_TYPE
19
19
  }
20
20
 
21
21
  def initialize
@@ -23,8 +23,8 @@ if Steno::Sink::WINDOWS
23
23
  @eventlog = nil
24
24
  end
25
25
 
26
- def open()
27
- @eventlog = Win32::EventLog::open('Application')
26
+ def open
27
+ @eventlog = Win32::EventLog.open('Application')
28
28
  end
29
29
 
30
30
  def add_record(record)
@@ -32,15 +32,14 @@ if Steno::Sink::WINDOWS
32
32
  pri = LOG_LEVEL_MAP[record.log_level]
33
33
 
34
34
  @eventlog.report_event(
35
- :source => 'CloudFoundry',
36
- :event_type => pri,
37
- :data => msg
35
+ source: 'CloudFoundry',
36
+ event_type: pri,
37
+ data: msg
38
38
  )
39
39
  end
40
40
 
41
41
  def flush
42
42
  nil
43
43
  end
44
-
45
44
  end
46
- end
45
+ end
@@ -6,7 +6,6 @@ require 'fluent-logger'
6
6
  # and fluent-logger at https://github.com/fluent/fluent-logger-ruby
7
7
  #
8
8
  class Steno::Sink::Fluentd < Steno::Sink::Base
9
-
10
9
  # @param [Hash] opts Key :tag_prefix tag prefix of fluent logs (default: steno)
11
10
  # Key :host fluentd host (default: 127.0.0.1)
12
11
  # Key :port fluentd port (deafult: 24224)
@@ -14,10 +13,10 @@ class Steno::Sink::Fluentd < Steno::Sink::Base
14
13
  def initialize(opts = {})
15
14
  super
16
15
 
17
- @fluentd = Fluent::Logger::FluentLogger.new(opts[:tag_prefix] || "steno",
18
- :host => opts[:host] || "127.0.0.1",
19
- :port => opts[:port] || 24224,
20
- :buffer_limit => opts[:buffer_limit] || Fluent::Logger::FluentLogger::BUFFER_LIMIT)
16
+ @fluentd = Fluent::Logger::FluentLogger.new(opts[:tag_prefix] || 'steno',
17
+ host: opts[:host] || '127.0.0.1',
18
+ port: opts[:port] || 24_224,
19
+ buffer_limit: opts[:buffer_limit] || Fluent::Logger::FluentLogger::BUFFER_LIMIT)
21
20
  @io_lock = Mutex.new
22
21
  end
23
22
 
data/lib/steno/sink/io.rb CHANGED
@@ -1,4 +1,4 @@
1
- require "steno/sink/base"
1
+ require 'steno/sink/base'
2
2
 
3
3
  module Steno
4
4
  module Sink
@@ -16,15 +16,13 @@ class Steno::Sink::IO < Steno::Sink::Base
16
16
  # @return [Steno::Sink::IO]
17
17
  def for_file(path, opts = {})
18
18
  autoflush = true
19
- if opts.include?(:autoflush)
20
- autoflush = opts[:autoflush]
21
- end
19
+ autoflush = opts[:autoflush] if opts.include?(:autoflush)
22
20
 
23
- io = File.open(path, "a+")
21
+ io = File.open(path, 'a+')
24
22
 
25
23
  io.sync = autoflush
26
24
 
27
- new(io, :max_retries => opts[:max_retries])
25
+ new(io, max_retries: opts[:max_retries])
28
26
  end
29
27
  end
30
28
 
@@ -52,12 +50,10 @@ class Steno::Sink::IO < Steno::Sink::Base
52
50
  begin
53
51
  @io.write(bytes)
54
52
  rescue IOError => e
55
- if retries < @max_retries
56
- retries += 1
57
- retry
58
- else
59
- raise e
60
- end
53
+ raise e unless retries < @max_retries
54
+
55
+ retries += 1
56
+ retry
61
57
  end
62
58
  end
63
59
 
@@ -1,24 +1,24 @@
1
1
  unless Steno::Sink::WINDOWS
2
- require "steno/sink/base"
2
+ require 'steno/sink/base'
3
3
 
4
- require "singleton"
5
- require "thread"
6
- require "syslog/logger"
4
+ require 'singleton'
5
+ require 'thread'
6
+ require 'syslog/logger'
7
7
 
8
8
  class Steno::Sink::Syslog < Steno::Sink::Base
9
9
  include Singleton
10
10
 
11
11
  MAX_MESSAGE_SIZE = 1024 * 3
12
- TRUNCATE_POSTFIX = "..."
12
+ TRUNCATE_POSTFIX = '...'
13
13
 
14
14
  LOG_LEVEL_MAP = {
15
- :fatal => Syslog::LOG_CRIT,
16
- :error => Syslog::LOG_ERR,
17
- :warn => Syslog::LOG_WARNING,
18
- :info => Syslog::LOG_INFO,
19
- :debug => Syslog::LOG_DEBUG,
20
- :debug1 => Syslog::LOG_DEBUG,
21
- :debug2 => Syslog::LOG_DEBUG,
15
+ fatal: Syslog::LOG_CRIT,
16
+ error: Syslog::LOG_ERR,
17
+ warn: Syslog::LOG_WARNING,
18
+ info: Syslog::LOG_INFO,
19
+ debug: Syslog::LOG_DEBUG,
20
+ debug1: Syslog::LOG_DEBUG,
21
+ debug2: Syslog::LOG_DEBUG
22
22
  }
23
23
 
24
24
  def initialize
@@ -36,10 +36,12 @@ unless Steno::Sink::WINDOWS
36
36
  end
37
37
 
38
38
  def add_record(record)
39
+ return if record.log_level == :off
40
+
39
41
  record = truncate_record(record)
40
42
  msg = @codec.encode_record(record)
41
43
  pri = LOG_LEVEL_MAP[record.log_level]
42
- @syslog_lock.synchronize { @syslog.log(pri, "%s", msg) }
44
+ @syslog_lock.synchronize { @syslog.log(pri, '%s', msg) }
43
45
  end
44
46
 
45
47
  def flush
data/lib/steno/sink.rb CHANGED
@@ -1,6 +1,6 @@
1
- require "steno/sink/base"
2
- require "steno/sink/io"
3
- require "steno/sink/syslog"
4
- require "steno/sink/fluentd"
5
- require "steno/sink/counter"
6
- require "steno/sink/eventlog"
1
+ require 'steno/sink/base'
2
+ require 'steno/sink/io'
3
+ require 'steno/sink/syslog'
4
+ require 'steno/sink/fluentd'
5
+ require 'steno/sink/counter'
6
+ require 'steno/sink/eventlog'
@@ -1,11 +1,10 @@
1
- require "steno/logger"
1
+ require 'steno/logger'
2
2
 
3
3
  module Steno
4
4
  end
5
5
 
6
6
  # Provides a proxy that allows persistent user data
7
7
  class Steno::TaggedLogger
8
-
9
8
  attr_reader :proxied_logger
10
9
  attr_accessor :user_data
11
10
 
@@ -18,7 +17,7 @@ class Steno::TaggedLogger
18
17
  end
19
18
 
20
19
  def define_logf_method(name)
21
- define_method(name.to_s + "f") { |fmt, *args| log(name, fmt % args) }
20
+ define_method(name.to_s + 'f') { |fmt, *args| log(name, fmt % args) }
22
21
  end
23
22
  end
24
23
 
data/lib/steno/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Steno
2
- VERSION = "1.3.4"
2
+ VERSION = '1.3.5'
3
3
  end
data/lib/steno.rb CHANGED
@@ -1,21 +1,19 @@
1
- require "thread"
2
-
3
- require "steno/codec"
4
- require "steno/config"
5
- require "steno/context"
6
- require "steno/errors"
7
- require "steno/log_level"
8
- require "steno/logger"
9
- require "steno/tagged_logger"
10
- require "steno/record"
11
- require "steno/sink"
12
- require "steno/version"
1
+ require 'thread'
2
+
3
+ require 'steno/codec'
4
+ require 'steno/config'
5
+ require 'steno/context'
6
+ require 'steno/errors'
7
+ require 'steno/log_level'
8
+ require 'steno/logger'
9
+ require 'steno/tagged_logger'
10
+ require 'steno/record'
11
+ require 'steno/sink'
12
+ require 'steno/version'
13
13
 
14
14
  module Steno
15
15
  class << self
16
-
17
- attr_reader :config
18
- attr_reader :logger_regexp
16
+ attr_reader :config, :logger_regexp
19
17
 
20
18
  # Initializes the logging system. This must be called exactly once before
21
19
  # attempting to use any Steno class methods.
@@ -48,8 +46,8 @@ module Steno
48
46
  level = compute_level(name)
49
47
 
50
48
  logger = Steno::Logger.new(name, @config.sinks,
51
- :level => level,
52
- :context => @config.context)
49
+ level: level,
50
+ context: @config.context)
53
51
 
54
52
  @loggers[name] = logger
55
53
  end
@@ -92,9 +90,7 @@ module Steno
92
90
  return if @logger_regexp.nil?
93
91
 
94
92
  @loggers.each do |name, logger|
95
- if name =~ @logger_regexp
96
- logger.level = @config.default_log_level
97
- end
93
+ logger.level = @config.default_log_level if name =~ @logger_regexp
98
94
  end
99
95
 
100
96
  @logger_regexp = nil
@@ -104,7 +100,6 @@ module Steno
104
100
  nil
105
101
  end
106
102
 
107
-
108
103
  # @return [Hash] Map of logger name => level
109
104
  def logger_level_snapshot
110
105
  @loggers_lock.synchronize do
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
- require "rack/test"
2
- require "rspec"
1
+ require 'rack/test'
2
+ require 'rspec'
3
3
 
4
- require "steno"
4
+ require 'steno'
5
5
 
6
- Dir["./spec/support/**/*.rb"].each { |file| require file }
6
+ Dir['./spec/support/**/*.rb'].each { |file| require file }
@@ -1,4 +1,4 @@
1
- require "thread"
1
+ require 'thread'
2
2
 
3
3
  class Barrier
4
4
  def initialize
@@ -16,7 +16,7 @@ class Barrier
16
16
 
17
17
  def wait
18
18
  @lock.synchronize do
19
- @cvar.wait(@lock) if !@done
19
+ @cvar.wait(@lock) unless @done
20
20
  end
21
21
  end
22
22
  end
@@ -1,7 +1,7 @@
1
- shared_context :steno_context do
2
- it "should support clearing context local data" do
3
- context.data["test"] = "value"
1
+ shared_examples 'steno context' do
2
+ it 'supports clearing context local data' do
3
+ context.data['test'] = 'value'
4
4
  context.clear
5
- expect(context.data["test"]).to be_nil
5
+ expect(context.data['test']).to be_nil
6
6
  end
7
7
  end