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 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