services 1.0.0 → 1.1.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/CHANGELOG.md +20 -0
- data/lib/services/logger/file.rb +4 -1
- data/lib/services/logger/redis.rb +12 -2
- data/lib/services/modules/call_logger.rb +1 -1
- data/lib/services/version.rb +1 -1
- data/spec/services/logger/redis_spec.rb +32 -17
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e3a4eda849ba7c5dfa6aedd6fa7f405c942bb0e
|
4
|
+
data.tar.gz: 16e437174cf3a28070d2c70cb1fcbe4a0bc72a42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eab5ca8ffb5a39029b42351230b31aa2106ab36a9d93e008b16940c451d3a508bce74a7d243522b3a0dfdea004d88d7d926094ff0c2377b921af80a82c671e8c
|
7
|
+
data.tar.gz: 0932d4b1d53c5add16846778e117e73437018786043722f85c59087523992565ffe4a2cd3748f232ea96d91f00eea6cbf1e7c53ef8b425954afd387f40d8ca9d
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
## 1.1.0
|
2
|
+
|
3
|
+
* Change arguments for log call in file and Redis logger, replace tag array with meta hash
|
4
|
+
* Add methods to query size of logs and fetch logs to Redis logger
|
5
|
+
|
6
|
+
## 1.0.0
|
7
|
+
|
8
|
+
* Added Redis logger
|
9
|
+
* Moved file logger to separate class
|
10
|
+
* Don't initialize file logger automatically for Rails apps anymore
|
11
|
+
* Changed argument order for Redis and file logger, made `tags` parameter optional
|
12
|
+
|
13
|
+
## 0.4.0
|
14
|
+
|
15
|
+
* Renamed `service_class` helper to `object_class`
|
16
|
+
|
17
|
+
## 0.3.4
|
18
|
+
|
19
|
+
* Added `BaseFinder`
|
20
|
+
* Updated uniqueness key
|
data/lib/services/logger/file.rb
CHANGED
@@ -9,7 +9,10 @@ module Services
|
|
9
9
|
@logger.clear_tags!
|
10
10
|
end
|
11
11
|
|
12
|
-
def log(message,
|
12
|
+
def log(message, meta = {}, severity = :info)
|
13
|
+
tags = meta.map do |k, v|
|
14
|
+
[k, v].join('=')
|
15
|
+
end
|
13
16
|
@logger.tagged Time.now, severity.upcase, *tags do
|
14
17
|
@logger.send severity, message
|
15
18
|
end
|
@@ -5,16 +5,26 @@ module Services
|
|
5
5
|
@redis, @key = redis, key
|
6
6
|
end
|
7
7
|
|
8
|
-
def log(message,
|
8
|
+
def log(message, meta = {}, severity = :info)
|
9
9
|
value = {
|
10
10
|
time: Time.now.to_i,
|
11
11
|
message: message,
|
12
12
|
severity: severity,
|
13
|
-
|
13
|
+
meta: meta
|
14
14
|
}
|
15
15
|
@redis.lpush @key, value.to_json
|
16
16
|
end
|
17
17
|
|
18
|
+
def size
|
19
|
+
@redis.llen @key
|
20
|
+
end
|
21
|
+
|
22
|
+
def fetch
|
23
|
+
@redis.lrange(@key, 0, -1).map do |json|
|
24
|
+
JSON.load json
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
18
28
|
def clear
|
19
29
|
@redis.multi do
|
20
30
|
@redis.lrange @key, 0, -1
|
@@ -21,7 +21,7 @@ module Services
|
|
21
21
|
private
|
22
22
|
|
23
23
|
def log(message, severity = :info)
|
24
|
-
Services.configuration.logger.log message,
|
24
|
+
Services.configuration.logger.log message, { service: self.class, id: @id }, severity
|
25
25
|
end
|
26
26
|
|
27
27
|
def log_exception(e, cause = false)
|
data/lib/services/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Services::Logger::Redis do
|
4
|
-
let(:
|
4
|
+
let(:meta) { { foo: 'bar' } }
|
5
5
|
let(:message) { "One day baby we'll be old" }
|
6
6
|
let(:severity) { 'critical' }
|
7
7
|
let(:key) { 'custom_log_key' }
|
@@ -14,6 +14,15 @@ describe Services::Logger::Redis do
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
def create_logs
|
18
|
+
(2.days.ago.to_i..Time.now.to_i).step(1.hour) do |timestamp|
|
19
|
+
time = Time.at(timestamp)
|
20
|
+
Timecop.freeze time do
|
21
|
+
logger.log time.to_s(:long), weekday: time.strftime('%a')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
17
26
|
describe '#log' do
|
18
27
|
it 'logs properly' do
|
19
28
|
Timecop.freeze do
|
@@ -21,35 +30,41 @@ describe Services::Logger::Redis do
|
|
21
30
|
'time' => Time.now.to_i,
|
22
31
|
'message' => message,
|
23
32
|
'severity' => severity,
|
24
|
-
'
|
33
|
+
'meta' => meta.stringify_keys
|
25
34
|
}
|
26
35
|
expect do
|
27
|
-
logger.log message,
|
36
|
+
logger.log message, meta, severity
|
28
37
|
end.to change { log_entries }.from([]).to([payload])
|
29
38
|
end
|
30
39
|
end
|
31
40
|
end
|
32
41
|
|
33
|
-
|
42
|
+
context 'when logs are present' do
|
34
43
|
before do
|
35
|
-
|
36
|
-
time = Time.at(timestamp)
|
37
|
-
Timecop.freeze time do
|
38
|
-
tags = [time.strftime('%a')]
|
39
|
-
logger.log tags, time.to_s(:long)
|
40
|
-
end
|
41
|
-
end
|
44
|
+
create_logs
|
42
45
|
expect(log_entries.size).to be > 0
|
43
46
|
end
|
44
47
|
|
45
|
-
|
46
|
-
|
48
|
+
describe '#size' do
|
49
|
+
it 'returns the amount of logs' do
|
50
|
+
expect(logger.size).to eq(log_entries.size)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe '#fetch' do
|
55
|
+
it 'returns all logs' do
|
56
|
+
expect(logger.fetch).to eq(log_entries)
|
57
|
+
end
|
47
58
|
end
|
48
59
|
|
49
|
-
|
50
|
-
|
51
|
-
logger.clear
|
52
|
-
end
|
60
|
+
describe '#clear' do
|
61
|
+
it 'returns all logs' do
|
62
|
+
expect(log_entries).to eq(logger.clear)
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'clears all log entries' do
|
66
|
+
expect { logger.clear }.to change { log_entries }.to([])
|
67
|
+
end
|
53
68
|
end
|
54
69
|
end
|
55
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: services
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel Meurer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -144,6 +144,7 @@ extra_rdoc_files: []
|
|
144
144
|
files:
|
145
145
|
- ".gitignore"
|
146
146
|
- ".travis.yml"
|
147
|
+
- CHANGELOG.md
|
147
148
|
- Gemfile
|
148
149
|
- Guardfile
|
149
150
|
- LICENSE.txt
|