memolog 0.3.5 → 0.4.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/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
|