betterlog 0.6.1 → 0.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea1ed4b88f6dbe71f77b72bbbd35a3cc42a134a8b299659cf7b4fb29c63650f9
4
- data.tar.gz: 44e5c241558ac5b8d7fa979d51539d0137e90dcdd4c9c75afbac33e0c179fa03
3
+ metadata.gz: 1e42b86b1161160f22929294cab981b61bca9f8b7556d10340aeb92d15b500a9
4
+ data.tar.gz: 0e5fea2a8341c8fa39c64075b51768e22b126ce2d3d2cae0df7884a49bbe23a0
5
5
  SHA512:
6
- metadata.gz: ccf0ab6e5ed1cc99873447717541cd6428c8382410986029f07179be0463af31815e4da9fbebfb6de2318f1107dcdf3066bb7e120cbd6e8b3b3c8b27fb93e4dc
7
- data.tar.gz: 8841c441c63e8fa09ebea2b5c22599b0c8f0070295497b369a4c2258132a1867889e0f22dd933f0d68c648307ad26210e9769ca85e098eebafc088d013eaa25e
6
+ metadata.gz: d39be241c8940ae2a8d8ba79635fbeff0c4eb86ca5d87de5f4650433b6e2a63fa2d4d45a31bafcdf87cdf82cda855cebc03641f2a882ab51c8cedc91fb2cd407
7
+ data.tar.gz: b4e08f6a9b787e2255f1e123cc0e9e04813884108dcbec54b3a50e0d03d76589410e3cc6f7b5b7097882f288185708663a9f2b0c4c3e4d073d076820ec46d5bb
data/Makefile CHANGED
@@ -20,10 +20,7 @@ local: betterlog-server
20
20
  REDIS_URL=$(REDIS_URL) ./betterlog-server
21
21
 
22
22
  fetch: fake-package
23
- go get -u github.com/dgrijalva/jwt-go
24
- go get -u github.com/labstack/echo
25
- go get -u github.com/kelseyhightower/envconfig
26
- go get -u github.com/go-redis/redis
23
+ go mod download
27
24
 
28
25
  fake-package:
29
26
  rm -rf $(GOPATH)/src/github.com/betterplace/betterlog
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ GemHadar do
18
18
  title "#{name.camelize}"
19
19
  executables %w[ betterlog betterlog_pusher betterlog_sink ]
20
20
 
21
- dependency 'tins', '~>1.3', '>=1.3.5'
21
+ dependency 'tins', '~>1.3', '>=1.22.0'
22
22
  dependency 'complex_config'
23
23
  dependency 'file-tail', '~>1.0'
24
24
  dependency 'json', '~>2.0'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.1
1
+ 0.7.0
data/betterlog.gemspec CHANGED
@@ -1,24 +1,24 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: betterlog 0.6.1 ruby lib
2
+ # stub: betterlog 0.7.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "betterlog".freeze
6
- s.version = "0.6.1"
6
+ s.version = "0.7.0"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["betterplace Developers".freeze]
11
- s.date = "2019-07-22"
11
+ s.date = "2019-10-31"
12
12
  s.description = "This library provides structure json logging for our rails projects".freeze
13
13
  s.email = "developers@betterplace.org".freeze
14
14
  s.executables = ["betterlog".freeze, "betterlog_pusher".freeze, "betterlog_sink".freeze]
15
15
  s.extra_rdoc_files = ["README.md".freeze, "lib/betterlog.rb".freeze, "lib/betterlog/global_metadata.rb".freeze, "lib/betterlog/log.rb".freeze, "lib/betterlog/log/event.rb".freeze, "lib/betterlog/log/event_formatter.rb".freeze, "lib/betterlog/log/severity.rb".freeze, "lib/betterlog/log_event_formatter.rb".freeze, "lib/betterlog/logger.rb".freeze, "lib/betterlog/notifiers.rb".freeze, "lib/betterlog/railtie.rb".freeze, "lib/betterlog/version.rb".freeze]
16
- s.files = [".gitignore".freeze, ".travis.yml".freeze, "Dockerfile".freeze, "Gemfile".freeze, "LICENSE".freeze, "Makefile".freeze, "README.md".freeze, "Rakefile".freeze, "TODO.md".freeze, "VERSION".freeze, "betterlog.gemspec".freeze, "betterlog/config.go".freeze, "betterlog/healthz.go".freeze, "betterlog/redis_cert_cache.go".freeze, "bin/betterlog".freeze, "bin/betterlog_pusher".freeze, "bin/betterlog_sink".freeze, "cmd/betterlog-server/LICENSE".freeze, "cmd/betterlog-server/main.go".freeze, "config/log.yml".freeze, "lib/betterlog.rb".freeze, "lib/betterlog/global_metadata.rb".freeze, "lib/betterlog/log.rb".freeze, "lib/betterlog/log/event.rb".freeze, "lib/betterlog/log/event_formatter.rb".freeze, "lib/betterlog/log/severity.rb".freeze, "lib/betterlog/log_event_formatter.rb".freeze, "lib/betterlog/logger.rb".freeze, "lib/betterlog/notifiers.rb".freeze, "lib/betterlog/railtie.rb".freeze, "lib/betterlog/version.rb".freeze, "spec/betterlog/global_metadata_spec.rb".freeze, "spec/betterlog/log_spec.rb".freeze, "spec/betterlog/logger_spec.rb".freeze, "spec/spec_helper.rb".freeze]
16
+ s.files = [".gitignore".freeze, ".travis.yml".freeze, "Dockerfile".freeze, "Gemfile".freeze, "LICENSE".freeze, "Makefile".freeze, "README.md".freeze, "Rakefile".freeze, "TODO.md".freeze, "VERSION".freeze, "betterlog.gemspec".freeze, "betterlog/config.go".freeze, "betterlog/healthz.go".freeze, "betterlog/redis_cert_cache.go".freeze, "bin/betterlog".freeze, "bin/betterlog_pusher".freeze, "bin/betterlog_sink".freeze, "cmd/betterlog-server/LICENSE".freeze, "cmd/betterlog-server/main.go".freeze, "config/log.yml".freeze, "go.mod".freeze, "go.sum".freeze, "lib/betterlog.rb".freeze, "lib/betterlog/global_metadata.rb".freeze, "lib/betterlog/log.rb".freeze, "lib/betterlog/log/event.rb".freeze, "lib/betterlog/log/event_formatter.rb".freeze, "lib/betterlog/log/severity.rb".freeze, "lib/betterlog/log_event_formatter.rb".freeze, "lib/betterlog/logger.rb".freeze, "lib/betterlog/notifiers.rb".freeze, "lib/betterlog/railtie.rb".freeze, "lib/betterlog/version.rb".freeze, "spec/betterlog/global_metadata_spec.rb".freeze, "spec/betterlog/log/event_spec.rb".freeze, "spec/betterlog/log/severity_spec.rb".freeze, "spec/betterlog/log_spec.rb".freeze, "spec/betterlog/logger_spec.rb".freeze, "spec/spec_helper.rb".freeze]
17
17
  s.homepage = "http://github.com/betterplace/betterlog".freeze
18
18
  s.rdoc_options = ["--title".freeze, "Betterlog".freeze, "--main".freeze, "README.md".freeze]
19
- s.rubygems_version = "3.0.3".freeze
19
+ s.rubygems_version = "3.0.6".freeze
20
20
  s.summary = "Structured logging support for bp".freeze
21
- s.test_files = ["spec/betterlog/global_metadata_spec.rb".freeze, "spec/betterlog/log_spec.rb".freeze, "spec/betterlog/logger_spec.rb".freeze, "spec/spec_helper.rb".freeze]
21
+ s.test_files = ["spec/betterlog/global_metadata_spec.rb".freeze, "spec/betterlog/log/event_spec.rb".freeze, "spec/betterlog/log/severity_spec.rb".freeze, "spec/betterlog/log_spec.rb".freeze, "spec/betterlog/logger_spec.rb".freeze, "spec/spec_helper.rb".freeze]
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  s.specification_version = 4
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency(%q<rake>.freeze, [">= 0"])
29
29
  s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
30
30
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
31
- s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.3.5"])
31
+ s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.22.0"])
32
32
  s.add_runtime_dependency(%q<complex_config>.freeze, [">= 0"])
33
33
  s.add_runtime_dependency(%q<file-tail>.freeze, ["~> 1.0"])
34
34
  s.add_runtime_dependency(%q<json>.freeze, ["~> 2.0"])
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
41
41
  s.add_dependency(%q<rake>.freeze, [">= 0"])
42
42
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
43
43
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
44
- s.add_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.3.5"])
44
+ s.add_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.22.0"])
45
45
  s.add_dependency(%q<complex_config>.freeze, [">= 0"])
46
46
  s.add_dependency(%q<file-tail>.freeze, ["~> 1.0"])
47
47
  s.add_dependency(%q<json>.freeze, ["~> 2.0"])
@@ -55,7 +55,7 @@ Gem::Specification.new do |s|
55
55
  s.add_dependency(%q<rake>.freeze, [">= 0"])
56
56
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
57
57
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
58
- s.add_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.3.5"])
58
+ s.add_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.22.0"])
59
59
  s.add_dependency(%q<complex_config>.freeze, [">= 0"])
60
60
  s.add_dependency(%q<file-tail>.freeze, ["~> 1.0"])
61
61
  s.add_dependency(%q<json>.freeze, ["~> 2.0"])
data/go.mod ADDED
@@ -0,0 +1,12 @@
1
+ module github.com/betterplace/betterlog
2
+
3
+ go 1.13
4
+
5
+ require (
6
+ github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
7
+ github.com/go-redis/redis v6.15.5+incompatible
8
+ github.com/kelseyhightower/envconfig v1.4.0 // indirect
9
+ github.com/labstack/echo v3.3.10+incompatible
10
+ github.com/labstack/gommon v0.3.0 // indirect
11
+ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392
12
+ )
data/go.sum ADDED
@@ -0,0 +1,36 @@
1
+ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2
+ github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
3
+ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
4
+ github.com/go-redis/redis v6.15.5+incompatible h1:pLky8I0rgiblWfa8C1EV7fPEUv0aH6vKRaYHc/YRHVk=
5
+ github.com/go-redis/redis v6.15.5+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
6
+ github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
7
+ github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
8
+ github.com/labstack/echo v3.3.10+incompatible h1:pGRcYk231ExFAyoAjAfD85kQzRJCRI8bbnE7CX5OEgg=
9
+ github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s=
10
+ github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0=
11
+ github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
12
+ github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
13
+ github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
14
+ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
15
+ github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg=
16
+ github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
17
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
18
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
19
+ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
20
+ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
21
+ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
22
+ github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8=
23
+ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
24
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
25
+ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392 h1:ACG4HJsFiNMf47Y4PeRoebLNy/2lXT9EtprMuTFWt1M=
26
+ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
27
+ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
28
+ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
29
+ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
30
+ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
31
+ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
32
+ golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
33
+ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
34
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
35
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
36
+ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -57,7 +57,7 @@ module Betterlog
57
57
  end
58
58
 
59
59
  def initialize(data = {})
60
- data = data.symbolize_keys_recursive | meta
60
+ data = data.symbolize_keys_recursive(circular: :circular) | meta
61
61
  unless data.key?(:message)
62
62
  data[:message] = "a #{data[:type]} type log message of severity #{data[:severity]}"
63
63
  end
@@ -70,36 +70,8 @@ module Betterlog
70
70
  @data = Hash[data.sort_by(&:first)]
71
71
  end
72
72
 
73
- class BreakCircles
74
- def initialize
75
- @seen = {}
76
- end
77
-
78
- IN_JSON = Tins::ModuleGroup[
79
- Float, Integer, NilClass, FalseClass, TrueClass
80
- ]
81
-
82
- def perform(object)
83
- if @seen.key?(object.__id__)
84
- :circular
85
- else
86
- @seen[object.__id__] = true
87
- case
88
- when h = object.ask_and_send(:to_hash)
89
- h.each_with_object({}) { |(k, v), h| h[k.to_s.to_sym] = perform(v) }
90
- when a = object.ask_and_send(:to_ary)
91
- a.map { |o| perform(o) }
92
- when IN_JSON === object
93
- object
94
- else
95
- object.to_s
96
- end
97
- end
98
- end
99
- end
100
-
101
73
  def as_hash(*a)
102
- BreakCircles.new.perform(@data)
74
+ @data
103
75
  end
104
76
 
105
77
  def to_json(*a)
@@ -1,20 +1,34 @@
1
1
  module Betterlog
2
2
  class Log
3
3
  class Severity
4
+ include ::Logger::Severity
4
5
  include Comparable
5
6
 
7
+ class << self
8
+ thread_local :shared
9
+
10
+ def new(name)
11
+ name = name.to_sym if self.class === name
12
+ name = name.to_s.upcase.to_sym
13
+ self.shared ||= {}
14
+ shared[name] ||= super(name).freeze
15
+ end
16
+ end
17
+
6
18
  def initialize(name)
7
- @name = name.to_s.downcase.to_sym
19
+ name = name.to_sym if self.class === name
20
+ name = name.to_s.upcase.to_sym
21
+ @name = name
8
22
  begin
9
- @level = Logger::Severity.const_get(@name.upcase)
23
+ @level = self.class.const_get(@name)
10
24
  rescue NameError
11
25
  @name = :UNKNOWN
12
- @level = Logger::Severity::UNKNOWN
26
+ @level = UNKNOWN
13
27
  end
14
28
  end
15
29
 
16
30
  def self.all
17
- @all_constants ||= Logger::Severity.constants.map { |c| new(c) }
31
+ @all_constants ||= constants.map { |c| new(c) }
18
32
  end
19
33
 
20
34
  def to_i
@@ -34,7 +48,7 @@ module Betterlog
34
48
  end
35
49
 
36
50
  def <=>(other)
37
- to_i <=> other.to_i
51
+ to_i <=> self.class.new(other).to_i
38
52
  end
39
53
 
40
54
  def eql?(other)
@@ -6,7 +6,14 @@ module Betterlog
6
6
  @redis = redis
7
7
  @name = name || self.class.name
8
8
  @buffer_size = determine_buffer_size(buffer_size)
9
- super(@logdev, shift_age, shift_size, **opts)
9
+ super(nil, shift_age, shift_size, **opts)
10
+ end
11
+
12
+ def self.for_redis_url(url, shift_age = 0, shift_size = 1048576, **opts)
13
+ redis = Redis.new(url: url)
14
+ redis.ping
15
+ new(redis, shift_age, shift_size, **opts)
16
+ rescue Redis::CannotConnectError
10
17
  end
11
18
 
12
19
  private def determine_buffer_size(buffer_size)
@@ -1,6 +1,6 @@
1
1
  module Betterlog
2
2
  # Betterlog version
3
- VERSION = '0.6.1'
3
+ VERSION = '0.7.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Betterlog::Log::Event do
4
+ describe '#to_json' do
5
+ it 'can deal with circular arrays' do
6
+ circular_array = [].tap { |arr| arr << arr }
7
+ event = Betterlog::Log::Event.new(array: circular_array)
8
+ expect(event.to_json).to include('"array":["circular"]')
9
+ end
10
+
11
+ it 'can deal with circular hashes' do
12
+ circular_hash = {}.tap { |hash| hash['foo'] = hash }
13
+ event = Betterlog::Log::Event.new(hash: circular_hash)
14
+ expect(event.to_json).to include('"hash":{"foo":"circular"}')
15
+ end
16
+
17
+ it 'does not replace repeated scalar objects with "circular"' do
18
+ ary = [true, false, nil, 23, 3.14]
19
+ event = Betterlog::Log::Event.new(ary: ary << ary.dup)
20
+ expect(event.to_json).to include(<<~end.strip)
21
+ "ary":[true,false,null,23,3.14,[true,false,null,23,3.14]]
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe Betterlog::Log::Severity do
4
+ it 'has all constants' do
5
+ expect(described_class.all.map(&:to_sym).sort).to\
6
+ eq %i[ WARN ERROR FATAL UNKNOWN DEBUG INFO ].sort
7
+ end
8
+
9
+ it 'resolves unknown severities to UNKNOWN' do
10
+ expect(described_class.new('NIX')).to eq(described_class.new(:UNKNOWN))
11
+ end
12
+
13
+ context 'severity instance' do
14
+ subject do
15
+ described_class.new('error')
16
+ end
17
+
18
+ it 'can be converted to integer' do
19
+ expect(subject.to_i).to eq 3
20
+ end
21
+
22
+ it 'can be converted to symbol' do
23
+ expect(subject.to_sym).to eq :ERROR
24
+ end
25
+
26
+ it 'can be converted to string' do
27
+ expect(subject.to_s).to eq 'ERROR'
28
+ end
29
+
30
+ it 'can be converted to json' do
31
+ expect(subject.to_json).to eq '"ERROR"'
32
+ end
33
+
34
+ it 'can be converted via as_json' do
35
+ expect(subject.as_json).to eq :ERROR
36
+ end
37
+
38
+ it 'can be compared by level' do
39
+ expect(subject).to be < described_class.new(:FATAL)
40
+ end
41
+
42
+ it 'can be compared by level via symbol' do
43
+ expect(subject).to be < :FATAL
44
+ end
45
+
46
+ it 'implements hash depending on name symbol' do
47
+ expect(subject.hash).to eq :ERROR.hash
48
+ end
49
+ end
50
+ end
51
+
@@ -5,6 +5,21 @@ describe Betterlog::Logger do
5
5
  described_class.new(Redis.new)
6
6
  end
7
7
 
8
+ describe '.for_redis_url' do
9
+ it 'can handle not being able to connect to redis' do
10
+ redis = double
11
+ allow(redis).to receive(:ping).and_raise Redis::CannotConnectError
12
+ allow(Redis).to receive(:new).with(url: 'the_url').and_return redis
13
+ expect(Betterlog::Logger.for_redis_url('the_url')).to be_nil
14
+ end
15
+
16
+ it 'can connect to redis for the url' do
17
+ redis = double(ping: 'PONG')
18
+ allow(Redis).to receive(:new).with(url: 'the_url').and_return redis
19
+ expect(Betterlog::Logger.for_redis_url('the_url')).to be_a Betterlog::Logger
20
+ end
21
+ end
22
+
8
23
  describe '#<<' do
9
24
  it 'writes to redis' do
10
25
  expect(logger.instance_variable_get(:@redis)).to receive(:append).
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: betterlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - betterplace Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-22 00:00:00.000000000 Z
11
+ date: 2019-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -75,7 +75,7 @@ dependencies:
75
75
  version: '1.3'
76
76
  - - ">="
77
77
  - !ruby/object:Gem::Version
78
- version: 1.3.5
78
+ version: 1.22.0
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,7 +85,7 @@ dependencies:
85
85
  version: '1.3'
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: 1.3.5
88
+ version: 1.22.0
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: complex_config
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -225,6 +225,8 @@ files:
225
225
  - cmd/betterlog-server/LICENSE
226
226
  - cmd/betterlog-server/main.go
227
227
  - config/log.yml
228
+ - go.mod
229
+ - go.sum
228
230
  - lib/betterlog.rb
229
231
  - lib/betterlog/global_metadata.rb
230
232
  - lib/betterlog/log.rb
@@ -237,6 +239,8 @@ files:
237
239
  - lib/betterlog/railtie.rb
238
240
  - lib/betterlog/version.rb
239
241
  - spec/betterlog/global_metadata_spec.rb
242
+ - spec/betterlog/log/event_spec.rb
243
+ - spec/betterlog/log/severity_spec.rb
240
244
  - spec/betterlog/log_spec.rb
241
245
  - spec/betterlog/logger_spec.rb
242
246
  - spec/spec_helper.rb
@@ -262,12 +266,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
262
266
  - !ruby/object:Gem::Version
263
267
  version: '0'
264
268
  requirements: []
265
- rubygems_version: 3.0.3
269
+ rubygems_version: 3.0.6
266
270
  signing_key:
267
271
  specification_version: 4
268
272
  summary: Structured logging support for bp
269
273
  test_files:
270
274
  - spec/betterlog/global_metadata_spec.rb
275
+ - spec/betterlog/log/event_spec.rb
276
+ - spec/betterlog/log/severity_spec.rb
271
277
  - spec/betterlog/log_spec.rb
272
278
  - spec/betterlog/logger_spec.rb
273
279
  - spec/spec_helper.rb