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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9dce059f72625002e6b813ad70cf427c5a3a59fb00cc614b6c9f80c8424bae8f
4
- data.tar.gz: 9e2fb92f533500da3d192c417b63578bfaa1984e76718e501393143e786796e5
3
+ metadata.gz: d8cb342892f52d20fa06101e203aa4d4d1c5efea05696c48bb7a30804b66befb
4
+ data.tar.gz: 4e7f8721ae37487cc8d88316432d2897f269c1817e75d66e562c5b846521cbd6
5
5
  SHA512:
6
- metadata.gz: 6d3dd9ff1c59a672936711f746fafb06921558108c3973ba174a8d3b08feb5ad239120d3422cf9a1fb53ff9621c6b10e82489b8da055774674821cef0e33eaaf
7
- data.tar.gz: 60a56a7a9bd93b7fb06383230b3874a41806cf422197675a148b31410b67265733fc89673613990e7e5adc279d9f5a0ac8ac134e8e2284b07503471ec7eb1e73
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.3.5)
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.5.1)
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.2)
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.0)
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.0)
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 = ::Memolog::Formatter.new
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:
@@ -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 = ::Memolog::Formatter.new
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Memolog
4
- VERSION = "0.3.5"
4
+ VERSION = "0.4.0"
5
5
  end
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.3.5
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-01-28 00:00:00.000000000 Z
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
@@ -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