betterlog 0.14.0 → 0.18.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 +4 -4
- data/.semaphore/semaphore.yml +63 -0
- data/Dockerfile +3 -3
- data/Makefile +1 -1
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/betterlog.gemspec +7 -5
- data/bin/betterlog +4 -4
- data/lib/betterlog.rb +0 -4
- data/lib/betterlog/log.rb +2 -2
- data/lib/betterlog/log/event.rb +11 -3
- data/lib/betterlog/log/event_formatter.rb +4 -1
- data/lib/betterlog/log/severity.rb +2 -0
- data/lib/betterlog/log_event_formatter.rb +1 -1
- data/lib/betterlog/logger.rb +5 -1
- data/lib/betterlog/railtie.rb +1 -0
- data/lib/betterlog/version.rb +1 -1
- data/spec/betterlog/log_spec.rb +11 -0
- data/spec/spec_helper.rb +6 -0
- metadata +18 -4
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b4506f76d220e94df7933aa69c972215d14f74563f2fe87fa803223788fcfc8d
|
|
4
|
+
data.tar.gz: 98ca98c122cc33e647ebd3724df28eb02f151053f465f5014e86fec867f4cec5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 98516988066c8b36d09beca0b6d5bce79b65a146c0316ffdf4e01718e3c63fd2dab0f4690b933a144088845a5b1c36b8408cb9814eebed3c76e8768bc926ea77
|
|
7
|
+
data.tar.gz: 68e69a38f1389678e5e862c02b8e31e9d5863d4a47d2e343329372995fca4df442952d6302ed308ad41d9239f559b6473a74902f6f4ebf01f5014aa348ea92d4
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
version: v1.0
|
|
2
|
+
name: Betterlog pipeline
|
|
3
|
+
agent:
|
|
4
|
+
machine:
|
|
5
|
+
type: e1-standard-2
|
|
6
|
+
os_image: ubuntu1804
|
|
7
|
+
|
|
8
|
+
blocks:
|
|
9
|
+
- name: Caching
|
|
10
|
+
task:
|
|
11
|
+
prologue:
|
|
12
|
+
commands:
|
|
13
|
+
- checkout
|
|
14
|
+
jobs:
|
|
15
|
+
- name: cache bundle
|
|
16
|
+
commands:
|
|
17
|
+
- sem-version ruby 2.7.2
|
|
18
|
+
- cache restore gems-$SEMAPHORE_GIT_BRANCH,gems-master
|
|
19
|
+
- bundle config set path 'vendor/bundle'
|
|
20
|
+
- bundle config jobs $(getconf _NPROCESSORS_ONLN)
|
|
21
|
+
- bundle install
|
|
22
|
+
- cache store gems-$SEMAPHORE_GIT_BRANCH vendor/bundle
|
|
23
|
+
|
|
24
|
+
- name: "Unit tests"
|
|
25
|
+
task:
|
|
26
|
+
env_vars:
|
|
27
|
+
- name: RAILS_ENV
|
|
28
|
+
value: test
|
|
29
|
+
prologue:
|
|
30
|
+
commands:
|
|
31
|
+
- checkout
|
|
32
|
+
|
|
33
|
+
# Setup ruby
|
|
34
|
+
- sem-version ruby 2.7.2
|
|
35
|
+
|
|
36
|
+
# Setup gems
|
|
37
|
+
- cache restore gems-$SEMAPHORE_GIT_BRANCH,gems-master
|
|
38
|
+
- bundle config set path 'vendor/bundle'
|
|
39
|
+
- bundle config jobs $(getconf _NPROCESSORS_ONLN)
|
|
40
|
+
- bundle install
|
|
41
|
+
|
|
42
|
+
jobs:
|
|
43
|
+
- name: RSpec Unit Tests
|
|
44
|
+
commands:
|
|
45
|
+
- bundle exec rake
|
|
46
|
+
|
|
47
|
+
- name: Building Docker Image
|
|
48
|
+
task:
|
|
49
|
+
|
|
50
|
+
secrets:
|
|
51
|
+
- name: GCP
|
|
52
|
+
|
|
53
|
+
prologue:
|
|
54
|
+
commands:
|
|
55
|
+
- gcloud auth activate-service-account --key-file=.secrets/gcp.json
|
|
56
|
+
- gcloud auth configure-docker -q eu.gcr.io
|
|
57
|
+
- checkout
|
|
58
|
+
|
|
59
|
+
jobs:
|
|
60
|
+
- name: Building and pushing
|
|
61
|
+
commands:
|
|
62
|
+
- make build
|
|
63
|
+
- test -n "$SEMAPHORE_GIT_TAG_NAME" && make push-latest
|
data/Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
FROM alpine:3.
|
|
1
|
+
FROM alpine:3.13.2 AS builder
|
|
2
2
|
|
|
3
3
|
# Update/Upgrade/Add packages for building
|
|
4
4
|
|
|
@@ -16,9 +16,9 @@ RUN make clobber
|
|
|
16
16
|
|
|
17
17
|
RUN go get -u github.com/betterplace/go-init
|
|
18
18
|
|
|
19
|
-
RUN make
|
|
19
|
+
RUN make setup all
|
|
20
20
|
|
|
21
|
-
FROM alpine:3.
|
|
21
|
+
FROM alpine:3.13.2 AS runner
|
|
22
22
|
|
|
23
23
|
# Update/Upgrade/Add packages
|
|
24
24
|
|
data/Makefile
CHANGED
data/Rakefile
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.18.0
|
data/betterlog.gemspec
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: betterlog 0.
|
|
2
|
+
# stub: betterlog 0.18.0 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "betterlog".freeze
|
|
6
|
-
s.version = "0.
|
|
6
|
+
s.version = "0.18.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 = "
|
|
11
|
+
s.date = "2021-03-05"
|
|
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, ".
|
|
16
|
+
s.files = [".gitignore".freeze, ".semaphore/semaphore.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, "cloudbuild.yaml".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.
|
|
19
|
+
s.rubygems_version = "3.2.8".freeze
|
|
20
20
|
s.summary = "Structured logging support for bp".freeze
|
|
21
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
|
|
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
|
|
30
30
|
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
31
31
|
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
32
|
+
s.add_development_dependency(%q<mock_redis>.freeze, [">= 0"])
|
|
32
33
|
s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.22.0"])
|
|
33
34
|
s.add_runtime_dependency(%q<complex_config>.freeze, [">= 0"])
|
|
34
35
|
s.add_runtime_dependency(%q<file-tail>.freeze, ["~> 1.0"])
|
|
@@ -42,6 +43,7 @@ Gem::Specification.new do |s|
|
|
|
42
43
|
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
|
43
44
|
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
44
45
|
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
46
|
+
s.add_dependency(%q<mock_redis>.freeze, [">= 0"])
|
|
45
47
|
s.add_dependency(%q<tins>.freeze, ["~> 1.3", ">= 1.22.0"])
|
|
46
48
|
s.add_dependency(%q<complex_config>.freeze, [">= 0"])
|
|
47
49
|
s.add_dependency(%q<file-tail>.freeze, ["~> 1.0"])
|
data/bin/betterlog
CHANGED
|
@@ -96,10 +96,10 @@ module Betterlog
|
|
|
96
96
|
return true unless @opts[?s]
|
|
97
97
|
@opts[?s].all? do |param|
|
|
98
98
|
case param
|
|
99
|
-
when
|
|
100
|
-
event[
|
|
101
|
-
when
|
|
102
|
-
event[
|
|
99
|
+
when /\A([^:]+):([^=]+)=(.+)\z/
|
|
100
|
+
event[$1]&.[]($2.to_sym)&.include?($3)
|
|
101
|
+
when /\A([^=]+)=(.+)\z/
|
|
102
|
+
event[$1]&.include?($2)
|
|
103
103
|
when String
|
|
104
104
|
event.to_json.include?(@opts[?s])
|
|
105
105
|
else
|
data/lib/betterlog.rb
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
require 'tins/xt'
|
|
2
2
|
require 'json'
|
|
3
|
-
require 'logger'
|
|
4
|
-
require 'time'
|
|
5
3
|
require 'complex_config'
|
|
6
|
-
require 'term/ansicolor'
|
|
7
4
|
|
|
8
5
|
module Betterlog
|
|
9
6
|
end
|
|
@@ -14,7 +11,6 @@ require 'betterlog/global_metadata'
|
|
|
14
11
|
require 'betterlog/logger'
|
|
15
12
|
|
|
16
13
|
if defined? Rails
|
|
17
|
-
require 'betterlog/log_event_formatter'
|
|
18
14
|
require 'betterlog/railtie'
|
|
19
15
|
end
|
|
20
16
|
|
data/lib/betterlog/log.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Betterlog
|
|
|
11
11
|
|
|
12
12
|
class_attr_accessor :default_logger
|
|
13
13
|
self.default_logger = Logger.new(STDERR)
|
|
14
|
-
if level = cc.log
|
|
14
|
+
if level = cc.log?&.level?
|
|
15
15
|
default_logger.level = level
|
|
16
16
|
end
|
|
17
17
|
|
|
@@ -138,7 +138,7 @@ module Betterlog
|
|
|
138
138
|
end
|
|
139
139
|
event[:emitter] = self.class.name.downcase
|
|
140
140
|
notify(event)
|
|
141
|
-
logger.send(event.severity.to_sym, event
|
|
141
|
+
logger.send(event.severity.to_sym, JSON.generate(event))
|
|
142
142
|
self
|
|
143
143
|
ensure
|
|
144
144
|
GlobalMetadata.data.clear
|
data/lib/betterlog/log/event.rb
CHANGED
|
@@ -75,11 +75,19 @@ module Betterlog
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
def to_json(*a)
|
|
78
|
-
|
|
78
|
+
JSON.generate(as_json)
|
|
79
|
+
rescue
|
|
80
|
+
# Sometimes rails logging messages contain invalid utf-8 characters
|
|
81
|
+
# generating various standard errors. Let's fallback to a barebones
|
|
82
|
+
# event with just a cleaned up message for these cases.
|
|
83
|
+
JSON.generate({
|
|
84
|
+
severity: @data[:severity],
|
|
85
|
+
message: @data.fetch(:message, '').encode('utf-8', invalid: :replace, undef: :replace, replace: ''),
|
|
86
|
+
})
|
|
79
87
|
end
|
|
80
88
|
|
|
81
|
-
def format(
|
|
82
|
-
Log::EventFormatter.new(self).format(
|
|
89
|
+
def format(**args)
|
|
90
|
+
Log::EventFormatter.new(self).format(**args)
|
|
83
91
|
end
|
|
84
92
|
|
|
85
93
|
alias to_s format
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
require 'time'
|
|
2
|
+
require 'term/ansicolor'
|
|
3
|
+
|
|
1
4
|
module Betterlog
|
|
2
5
|
class Log
|
|
3
6
|
class EventFormatter
|
|
@@ -15,7 +18,7 @@ module Betterlog
|
|
|
15
18
|
when :format
|
|
16
19
|
format_pattern(format: format)
|
|
17
20
|
else
|
|
18
|
-
@event
|
|
21
|
+
JSON.generate(@event)
|
|
19
22
|
end
|
|
20
23
|
ensure
|
|
21
24
|
Term::ANSIColor.coloring = old_coloring
|
data/lib/betterlog/logger.rb
CHANGED
data/lib/betterlog/railtie.rb
CHANGED
data/lib/betterlog/version.rb
CHANGED
data/spec/betterlog/log_spec.rb
CHANGED
|
@@ -26,6 +26,17 @@ describe Betterlog::Log do
|
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
+
describe 'Log::Event.to_json' do
|
|
30
|
+
it 'can be called' do
|
|
31
|
+
expect(event.to_json).to be_present
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'can handle invalid UTF-8 characters' do
|
|
35
|
+
event = Log::Event.ify("foo\xCEbar")
|
|
36
|
+
expect(event.to_json).to eq(JSON(severity: "DEBUG", message: 'foobar'))
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
29
40
|
describe '.parse' do
|
|
30
41
|
it 'can parse an event as a JSON document' do
|
|
31
42
|
expect(Log::Event.parse(event.to_json)).to eq event
|
data/spec/spec_helper.rb
CHANGED
|
@@ -9,5 +9,11 @@ begin
|
|
|
9
9
|
require 'byebug'
|
|
10
10
|
rescue LoadError
|
|
11
11
|
end
|
|
12
|
+
require 'mock_redis'
|
|
13
|
+
class MockRedis
|
|
14
|
+
class BaseConnectionError < StandardError; end
|
|
15
|
+
class CannotConnectError < BaseConnectionError; end
|
|
16
|
+
end
|
|
17
|
+
Redis=MockRedis
|
|
12
18
|
require 'betterlog'
|
|
13
19
|
Betterlog::Log.default_logger = Logger.new(nil)
|
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.
|
|
4
|
+
version: 0.18.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:
|
|
11
|
+
date: 2021-03-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: gem_hadar
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: mock_redis
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: tins
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -206,7 +220,7 @@ extra_rdoc_files:
|
|
|
206
220
|
- lib/betterlog/version.rb
|
|
207
221
|
files:
|
|
208
222
|
- ".gitignore"
|
|
209
|
-
- ".
|
|
223
|
+
- ".semaphore/semaphore.yml"
|
|
210
224
|
- Dockerfile
|
|
211
225
|
- Gemfile
|
|
212
226
|
- LICENSE
|
|
@@ -267,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
267
281
|
- !ruby/object:Gem::Version
|
|
268
282
|
version: '0'
|
|
269
283
|
requirements: []
|
|
270
|
-
rubygems_version: 3.
|
|
284
|
+
rubygems_version: 3.2.8
|
|
271
285
|
signing_key:
|
|
272
286
|
specification_version: 4
|
|
273
287
|
summary: Structured logging support for bp
|