betterlog 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/betterlog.gemspec +3 -3
- data/lib/betterlog/log.rb +15 -12
- data/lib/betterlog/version.rb +1 -1
- data/spec/betterlog/log_spec.rb +13 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0808e5c0791eea5fc8603ab2b6b89bdfcad494290b7dd7e41065569aaaaae68
|
4
|
+
data.tar.gz: 0df0ef130d6f6b3ed31f940386906651d8d16a1b5f5823f8eb4aca54dd6c6e8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d53aa09dc1b81790f9582e5802b54af8ccbf7df80f599e6e82f473d16a41ef7e0daad414d4d81d71e3faab4f3c918ca92f498340f4f151da0b69309c070e6993
|
7
|
+
data.tar.gz: 3f7b71e06e31cf1d087b1a41d3b9394d38b70f4b3a76e4d973e81b44fac14d18793982f818922409991ea0804f901ad1eb7740b69f4b7d695d6c98af87f7a2b1
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.0
|
data/betterlog.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: betterlog 0.
|
2
|
+
# stub: betterlog 0.8.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.8.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-11-
|
11
|
+
s.date = "2019-11-15"
|
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]
|
data/lib/betterlog/log.rb
CHANGED
@@ -12,7 +12,7 @@ module Betterlog
|
|
12
12
|
self.default_logger = Logger.new(STDERR)
|
13
13
|
|
14
14
|
def logger
|
15
|
-
defined?(Rails) && Rails.logger
|
15
|
+
defined?(Rails) && Rails.respond_to?(:logger) ? Rails.logger : ::Logger.new(STDERR)
|
16
16
|
end
|
17
17
|
|
18
18
|
# Logs a message on severity info.
|
@@ -83,16 +83,19 @@ module Betterlog
|
|
83
83
|
end
|
84
84
|
|
85
85
|
# Logs a metric on severity debug, by default, this can be changed by passing
|
86
|
-
# the severity: keyword.
|
86
|
+
# the severity: keyword. +name+ is for example 'Donation' and +type+
|
87
|
+
# 'Confirmation', and +value+ can be any value, but has to be somewhat
|
88
|
+
# consistent in terms of structure with +name/type+ to allow for correct
|
89
|
+
# evaluation.
|
87
90
|
#
|
88
|
-
# @param
|
91
|
+
# @param name the name of the recorded metric.
|
89
92
|
# @param type of the recorded metric.
|
90
93
|
# @param value of the recorded metric.
|
91
94
|
# @param **rest additional rest is logged as well.
|
92
95
|
# @return [ Log ] this object itself.
|
93
|
-
def metric(
|
96
|
+
def metric(name:, type:, value:, **rest)
|
94
97
|
protect do
|
95
|
-
event = build_metric(
|
98
|
+
event = build_metric(name: name, type: type, value: value, **rest)
|
96
99
|
emit event
|
97
100
|
end
|
98
101
|
end
|
@@ -103,21 +106,21 @@ module Betterlog
|
|
103
106
|
# If an error occurs during measurement details about it are added to the
|
104
107
|
# metric event.
|
105
108
|
#
|
106
|
-
# @param
|
109
|
+
# @param name the name of the recorded metric.
|
107
110
|
# @param **rest additional rest is logged as well.
|
108
111
|
# @param block the block around which the measure is teaken.
|
109
112
|
# @return [ Log ] this object itself.
|
110
|
-
def measure(
|
113
|
+
def measure(name:, **rest, &block)
|
111
114
|
raise ArgumentError, 'must be called with a block' unless block_given?
|
112
115
|
time_block { yield }
|
113
116
|
rescue => error
|
114
117
|
e = Log::Event.ify(error)
|
115
118
|
rest |= e.as_hash.subhash(:error_class, :backtrace, :message)
|
116
|
-
rest[:message] = "#{rest[:message].inspect} while measuring metric #{
|
119
|
+
rest[:message] = "#{rest[:message].inspect} while measuring metric #{name}"
|
117
120
|
raise error
|
118
121
|
ensure
|
119
122
|
protect do
|
120
|
-
event = build_metric(
|
123
|
+
event = build_metric(name: name, type: 'duration', value: timed_duration, **rest)
|
121
124
|
emit event
|
122
125
|
end
|
123
126
|
end
|
@@ -149,14 +152,14 @@ module Betterlog
|
|
149
152
|
self
|
150
153
|
end
|
151
154
|
|
152
|
-
def build_metric(
|
155
|
+
def build_metric(name:, type:, value:, **rest)
|
153
156
|
severity = rest.fetch(:severity, :debug)
|
154
157
|
rest |= {
|
155
|
-
message: "a metric #{
|
158
|
+
message: "a metric #{name} of type #{type}",
|
156
159
|
}
|
157
160
|
Log::Event.ify(
|
158
161
|
{
|
159
|
-
|
162
|
+
name: name,
|
160
163
|
type: type,
|
161
164
|
value: value,
|
162
165
|
} | rest,
|
data/lib/betterlog/version.rb
CHANGED
data/spec/betterlog/log_spec.rb
CHANGED
@@ -140,14 +140,14 @@ describe Betterlog::Log do
|
|
140
140
|
|
141
141
|
it 'can be sent after measuring times' do
|
142
142
|
expected_event = Log::Event.new(
|
143
|
-
message: 'a metric foo of type
|
144
|
-
|
145
|
-
type: '
|
143
|
+
message: 'a metric foo of type duration',
|
144
|
+
name: 'foo',
|
145
|
+
type: 'duration',
|
146
146
|
value: 10.0,
|
147
147
|
timestamp: "2011-11-11T10:11:21.000Z"
|
148
148
|
)
|
149
149
|
expect(instance).to receive(:emit).with(expected_event)
|
150
|
-
Log.measure(
|
150
|
+
Log.measure(name: 'foo') do
|
151
151
|
Time.dummy = Time.now + 10
|
152
152
|
end
|
153
153
|
end
|
@@ -160,8 +160,8 @@ describe Betterlog::Log do
|
|
160
160
|
|
161
161
|
it 'adds exception information if block raises' do
|
162
162
|
expected_event = Log::Event.new(
|
163
|
-
|
164
|
-
type: '
|
163
|
+
name: 'foo',
|
164
|
+
type: 'duration',
|
165
165
|
value: 3.0,
|
166
166
|
timestamp: "2011-11-11T10:11:14.000Z",
|
167
167
|
message: '"MyEx: we were fucked" while measuring metric foo',
|
@@ -171,7 +171,7 @@ describe Betterlog::Log do
|
|
171
171
|
expect(instance).to receive(:emit).with(expected_event)
|
172
172
|
raised = false
|
173
173
|
begin
|
174
|
-
Log.measure(
|
174
|
+
Log.measure(name: 'foo') do
|
175
175
|
Time.dummy = Time.now + 3
|
176
176
|
raise MyEx, "we were fucked"
|
177
177
|
Time.dummy = Time.now + 7
|
@@ -187,36 +187,36 @@ describe Betterlog::Log do
|
|
187
187
|
it 'logs metrics with a specific structure on debug log level' do
|
188
188
|
expected_event = Log::Event.new(
|
189
189
|
message: 'a metric controller.action of type ms',
|
190
|
-
|
190
|
+
name: 'controller.action',
|
191
191
|
type: 'ms',
|
192
192
|
value: 0.123,
|
193
193
|
)
|
194
194
|
expect(instance).to receive(:emit).with(expected_event)
|
195
|
-
Log.metric(
|
195
|
+
Log.metric(name: 'controller.action', type: 'ms', value: 0.123)
|
196
196
|
end
|
197
197
|
|
198
198
|
it 'logs metrics on a given log level' do
|
199
199
|
expected_event = Log::Event.new(
|
200
200
|
message: 'a metric controller.action of type ms',
|
201
|
-
|
201
|
+
name: 'controller.action',
|
202
202
|
type: 'ms',
|
203
203
|
value: 0.123,
|
204
204
|
severity: :info,
|
205
205
|
)
|
206
206
|
expect(instance).to receive(:emit).with(expected_event)
|
207
|
-
Log.metric(severity: :info,
|
207
|
+
Log.metric(severity: :info, name: 'controller.action', type: 'ms', value: 0.123)
|
208
208
|
end
|
209
209
|
|
210
210
|
it 'logs metrics with additional data' do
|
211
211
|
expected_event = Log::Event.new(
|
212
212
|
message: 'a metric controller.action of type ms',
|
213
213
|
foo: 'bar',
|
214
|
-
|
214
|
+
name: 'controller.action',
|
215
215
|
type: 'ms',
|
216
216
|
value: 0.123,
|
217
217
|
)
|
218
218
|
expect(instance).to receive(:emit).with(expected_event)
|
219
|
-
Log.metric(
|
219
|
+
Log.metric(name: 'controller.action', type: 'ms', value: 0.123, foo: 'bar')
|
220
220
|
end
|
221
221
|
end
|
222
222
|
end
|
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.8.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-11-
|
11
|
+
date: 2019-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem_hadar
|