memolog 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -5
- data/README.md +3 -3
- data/lib/memolog/config.rb +3 -3
- data/lib/memolog/version.rb +1 -1
- data/lib/memolog.rb +6 -9
- metadata +16 -3
- data/lib/memolog/formatter.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8cb342892f52d20fa06101e203aa4d4d1c5efea05696c48bb7a30804b66befb
|
4
|
+
data.tar.gz: 4e7f8721ae37487cc8d88316432d2897f269c1817e75d66e562c5b846521cbd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 806d71859e439c83417ad71f5c97f53358405e55243f982e79ce5f28b6736f1ae0175c6bf25822bbd30c27dea0f04584b4eb820df8ec8a8632c5487d48667a31
|
7
|
+
data.tar.gz: fbf2765dcf76597eba069a9d627e5728306043962bb92b3e23aab8e253cc948be10a4bbc4220b3d66bcb48d62ca3f9b9e362c88e03ea98a8f268dc51160b2926
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
memolog (0.
|
4
|
+
memolog (0.4.0)
|
5
|
+
json (~> 2)
|
5
6
|
logger (~> 1.4.3)
|
6
7
|
securerandom (~> 0.1.0)
|
7
8
|
|
@@ -87,6 +88,7 @@ GEM
|
|
87
88
|
i18n (1.9.1)
|
88
89
|
concurrent-ruby (~> 1.0)
|
89
90
|
io-wait (0.2.1)
|
91
|
+
json (2.6.1)
|
90
92
|
logger (1.4.4)
|
91
93
|
loofah (2.13.0)
|
92
94
|
crass (~> 1.0.2)
|
@@ -155,7 +157,7 @@ GEM
|
|
155
157
|
zeitwerk (~> 2.5)
|
156
158
|
rainbow (3.1.1)
|
157
159
|
rake (13.0.6)
|
158
|
-
redis (4.
|
160
|
+
redis (4.6.0)
|
159
161
|
regexp_parser (2.2.0)
|
160
162
|
rexml (3.2.5)
|
161
163
|
rspec (3.10.0)
|
@@ -167,11 +169,11 @@ GEM
|
|
167
169
|
rspec-expectations (3.10.2)
|
168
170
|
diff-lcs (>= 1.2.0, < 2.0)
|
169
171
|
rspec-support (~> 3.10.0)
|
170
|
-
rspec-mocks (3.10.
|
172
|
+
rspec-mocks (3.10.3)
|
171
173
|
diff-lcs (>= 1.2.0, < 2.0)
|
172
174
|
rspec-support (~> 3.10.0)
|
173
175
|
rspec-support (3.10.3)
|
174
|
-
rubocop (1.25.
|
176
|
+
rubocop (1.25.1)
|
175
177
|
parallel (~> 1.10)
|
176
178
|
parser (>= 3.1.0.0)
|
177
179
|
rainbow (>= 2.2.2, < 4.0)
|
@@ -204,7 +206,7 @@ GEM
|
|
204
206
|
rubocop (~> 1.0)
|
205
207
|
ruby-progressbar (1.11.0)
|
206
208
|
securerandom (0.1.1)
|
207
|
-
sidekiq (6.4.
|
209
|
+
sidekiq (6.4.1)
|
208
210
|
connection_pool (>= 2.2.2)
|
209
211
|
rack (~> 2.0)
|
210
212
|
redis (>= 4.2.0)
|
data/README.md
CHANGED
@@ -26,10 +26,10 @@ Use this example during application initialization process (this example impleme
|
|
26
26
|
```ruby
|
27
27
|
Memolog.configure do |config|
|
28
28
|
config.debug = false
|
29
|
-
config.formatter = ::
|
29
|
+
config.formatter = ::Logger::Formatter.new
|
30
30
|
config.middlewares = %i[rails sidekiq]
|
31
|
+
config.log_json = false
|
31
32
|
config.log_size_limit = 50_000
|
32
|
-
config.uuid_callable = -> { SecureRandom.uuid }
|
33
33
|
end
|
34
34
|
|
35
35
|
Memolog.init_middlewares!
|
@@ -39,8 +39,8 @@ Available options are:
|
|
39
39
|
- `debug` - set it to true if you need to leave Memolog.dump result outside `Memolog.run {}` block.
|
40
40
|
- `formatter` - setup your own formatter.
|
41
41
|
- `middlewares` - define here what you want to initialize in `#init_middlewares!` call.
|
42
|
+
- `log_json` - `#dump` will try to parse dump with `JSON.parse()`. Default is `false`
|
42
43
|
- `log_size_limit` - max log length in `#dump`.
|
43
|
-
- `uuid_callable` - Memolog add unique value to logs, here you can redefine uuid generation.
|
44
44
|
|
45
45
|
If you want to apply Sentry monkey patch that call `Memolog.dump` before `Sentry.capture_exception`
|
46
46
|
and `Sentry.capture_message` you can implement it via this code:
|
data/lib/memolog/config.rb
CHANGED
@@ -4,14 +4,14 @@ Memolog::Config = Struct.new(
|
|
4
4
|
:debug,
|
5
5
|
:formatter,
|
6
6
|
:middlewares,
|
7
|
+
:parse_json,
|
7
8
|
:log_size_limit,
|
8
|
-
:uuid_callable,
|
9
9
|
) do
|
10
10
|
def initialize
|
11
11
|
self.debug = false
|
12
|
-
self.formatter = ::
|
12
|
+
self.formatter = ::Logger::Formatter.new
|
13
13
|
self.middlewares = %i[rails sidekiq]
|
14
|
+
self.parse_json = false
|
14
15
|
self.log_size_limit = 50_000
|
15
|
-
self.uuid_callable = -> { SecureRandom.uuid }
|
16
16
|
end
|
17
17
|
end
|
data/lib/memolog/version.rb
CHANGED
data/lib/memolog.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
require "logger"
|
4
4
|
require "securerandom"
|
5
5
|
require "stringio"
|
6
|
+
require "json"
|
6
7
|
|
7
8
|
require "memolog/version"
|
8
9
|
require "memolog/config"
|
9
|
-
require "memolog/formatter"
|
10
10
|
require "memolog/init"
|
11
11
|
require "memolog/logger_extension"
|
12
12
|
require "memolog/rails_middleware"
|
@@ -30,11 +30,6 @@ module Memolog
|
|
30
30
|
|
31
31
|
def extend_logger(other_logger)
|
32
32
|
other_logger.extend(Memolog::LoggerExtension)
|
33
|
-
other_logger.formatter = config.formatter
|
34
|
-
end
|
35
|
-
|
36
|
-
def uuid
|
37
|
-
Thread.current[:memolog_uuid]
|
38
33
|
end
|
39
34
|
|
40
35
|
def logger
|
@@ -46,8 +41,6 @@ module Memolog
|
|
46
41
|
end
|
47
42
|
|
48
43
|
def run
|
49
|
-
Thread.current[:memolog_uuid] = config.uuid_callable.call
|
50
|
-
|
51
44
|
logdevs.push(StringIO.new)
|
52
45
|
logger.instance_variable_set(:@logdev, logdevs.last)
|
53
46
|
|
@@ -62,6 +55,10 @@ module Memolog
|
|
62
55
|
beginning = logdevs.last.string.length - config.log_size_limit
|
63
56
|
beginning = 0 if beginning.negative?
|
64
57
|
|
65
|
-
logdevs.last.string.slice(beginning, config.log_size_limit).presence
|
58
|
+
dump = logdevs.last.string.slice(beginning, config.log_size_limit).presence
|
59
|
+
|
60
|
+
config.parse_json ? JSON.parse(dump) : dump
|
61
|
+
rescue JSON::ParserError
|
62
|
+
dump
|
66
63
|
end
|
67
64
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memolog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stepan Kirushkin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: logger
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,7 +75,6 @@ files:
|
|
61
75
|
- bin/setup
|
62
76
|
- lib/memolog.rb
|
63
77
|
- lib/memolog/config.rb
|
64
|
-
- lib/memolog/formatter.rb
|
65
78
|
- lib/memolog/init.rb
|
66
79
|
- lib/memolog/logger_extension.rb
|
67
80
|
- lib/memolog/rails_middleware.rb
|
data/lib/memolog/formatter.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class Memolog::Formatter < Logger::Formatter
|
4
|
-
def call(severity, time, _progname, msg)
|
5
|
-
format(
|
6
|
-
Format,
|
7
|
-
severity[0..0],
|
8
|
-
format_datetime(time),
|
9
|
-
$PID,
|
10
|
-
severity,
|
11
|
-
Memolog.uuid,
|
12
|
-
msg2str(msg),
|
13
|
-
)
|
14
|
-
end
|
15
|
-
end
|