logster 2.20.0 → 2.21.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/.github/workflows/ci.yml +2 -2
- data/.rubocop.yml +4 -0
- data/CHANGELOG.md +6 -91
- data/Rakefile +1 -4
- data/assets/javascript/{chunk.143.2f62415fa9ee8d84fb84.js → chunk.524.b7d0b89d25457a72409c.js} +5 -5
- data/assets/javascript/{chunk.178.e362160626dc2d3791f7.js → chunk.582.5a04ae4713e692cd335a.js} +5 -5
- data/assets/javascript/{chunk.916.85a3fc9d873df80f5ea5.js → chunk.747.a730c497582bb6742a6e.js} +8 -8
- data/assets/javascript/{chunk.468.95dd450003497c781cb3.js → chunk.761.64949d89942c829e5c1b.js} +64 -64
- data/assets/javascript/client-app.js +298 -299
- data/assets/stylesheets/client-app.css +1 -1
- data/client-app/app/controllers/index.js +37 -18
- data/client-app/app/styles/app.css +69 -0
- data/client-app/app/templates/index.hbs +27 -0
- data/client-app/ember-cli-build.js +6 -0
- data/client-app/package.json +1 -1
- data/client-app/yarn.lock +393 -254
- data/gemfiles/rails_6.1.gemfile +3 -0
- data/gemfiles/rails_7.0.gemfile +3 -0
- data/gemfiles/rails_7.2.gemfile +9 -0
- data/lib/logster/group.rb +2 -2
- data/lib/logster/message.rb +4 -4
- data/lib/logster/middleware/viewer.rb +1 -1
- data/lib/logster/redis_store.rb +1 -1
- data/lib/logster/version.rb +1 -1
- data/test/examples/test_sidekiq_reporter_example.rb +1 -1
- data/test/logster/test_group.rb +1 -1
- data/test/logster/test_message.rb +1 -1
- data/test/logster/test_redis_store.rb +10 -0
- data/test/test_helper.rb +23 -1
- metadata +7 -6
data/gemfiles/rails_6.1.gemfile
CHANGED
data/gemfiles/rails_7.0.gemfile
CHANGED
data/lib/logster/group.rb
CHANGED
|
@@ -48,7 +48,7 @@ module Logster
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def to_json(opts = nil)
|
|
51
|
-
JSON.
|
|
51
|
+
JSON.generate(self.to_h, opts)
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def add_message(message)
|
|
@@ -109,7 +109,7 @@ module Logster
|
|
|
109
109
|
GroupWeb =
|
|
110
110
|
Struct.new(*%i[regex count timestamp messages row_id]) do
|
|
111
111
|
def to_json(opts = nil)
|
|
112
|
-
JSON.
|
|
112
|
+
JSON.generate(self.to_h.merge(severity: -1, group: true), opts)
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
def key
|
data/lib/logster/message.rb
CHANGED
|
@@ -65,7 +65,7 @@ module Logster
|
|
|
65
65
|
|
|
66
66
|
def to_json(opts = nil)
|
|
67
67
|
exclude_env = Hash === opts && opts.delete(:exclude_env)
|
|
68
|
-
JSON.
|
|
68
|
+
JSON.generate(to_h(exclude_env: exclude_env), opts)
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
def self.from_json(json)
|
|
@@ -134,7 +134,7 @@ module Logster
|
|
|
134
134
|
|
|
135
135
|
# todo - memoize?
|
|
136
136
|
def grouping_key
|
|
137
|
-
Digest::SHA1.hexdigest JSON.
|
|
137
|
+
Digest::SHA1.hexdigest JSON.generate grouping_hash
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
# todo - memoize?
|
|
@@ -273,10 +273,10 @@ module Logster
|
|
|
273
273
|
protected
|
|
274
274
|
|
|
275
275
|
def truncate_env(env, limit)
|
|
276
|
-
if JSON.
|
|
276
|
+
if JSON.generate(env).bytesize > limit
|
|
277
277
|
sizes = {}
|
|
278
278
|
braces = "{}".bytesize
|
|
279
|
-
env.each { |k, v| sizes[k] = JSON.
|
|
279
|
+
env.each { |k, v| sizes[k] = JSON.generate(k => v).bytesize - braces }
|
|
280
280
|
sorted = env.keys.sort { |a, b| sizes[a] <=> sizes[b] }
|
|
281
281
|
|
|
282
282
|
kept_keys = []
|
data/lib/logster/redis_store.rb
CHANGED
data/lib/logster/version.rb
CHANGED
|
@@ -6,7 +6,7 @@ require "logster/redis_store"
|
|
|
6
6
|
require "logger"
|
|
7
7
|
require "examples/sidekiq_logster_reporter"
|
|
8
8
|
|
|
9
|
-
class TestSidekiqReporter <
|
|
9
|
+
class TestSidekiqReporter < Minitest::Test
|
|
10
10
|
def setup
|
|
11
11
|
Logster.store = @store = Logster::RedisStore.new(Redis.new)
|
|
12
12
|
Logster.logger = @logger = Logster::Logger.new(Logster.store)
|
data/test/logster/test_group.rb
CHANGED
|
@@ -428,6 +428,16 @@ class TestRedisStore < Minitest::Test
|
|
|
428
428
|
assert_equal("TUVWXYZ", latest[0].message)
|
|
429
429
|
end
|
|
430
430
|
|
|
431
|
+
def test_search_works_with_invalid_regex_chars
|
|
432
|
+
@store.report(Logger::INFO, "test", "ABCDEFG\\")
|
|
433
|
+
@store.report(Logger::INFO, "test", "TUVWXYZ")
|
|
434
|
+
|
|
435
|
+
result = @store.latest(search: "EFG\\")
|
|
436
|
+
|
|
437
|
+
assert_equal(1, result.size)
|
|
438
|
+
assert_equal("ABCDEFG\\", result[0].message)
|
|
439
|
+
end
|
|
440
|
+
|
|
431
441
|
def test_search_exclude_results
|
|
432
442
|
@store.report(Logger::INFO, "test", "ABCDEFG")
|
|
433
443
|
@store.report(Logger::INFO, "test", "TUVWXYZ")
|
data/test/test_helper.rb
CHANGED
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "minitest"
|
|
4
|
-
require "minitest/unit"
|
|
5
4
|
require "minitest/autorun"
|
|
6
5
|
require "minitest/pride"
|
|
6
|
+
|
|
7
|
+
module StubSupport
|
|
8
|
+
def stub(method_name, value_or_callable = nil, &block)
|
|
9
|
+
original = method(method_name)
|
|
10
|
+
define_singleton_method(method_name) do |*args, &blk|
|
|
11
|
+
value_or_callable.respond_to?(:call) ? value_or_callable.call(*args, &blk) : value_or_callable
|
|
12
|
+
end
|
|
13
|
+
yield self
|
|
14
|
+
ensure
|
|
15
|
+
begin
|
|
16
|
+
singleton_class.undef_method(method_name)
|
|
17
|
+
rescue StandardError
|
|
18
|
+
nil
|
|
19
|
+
end
|
|
20
|
+
begin
|
|
21
|
+
define_singleton_method(method_name, original)
|
|
22
|
+
rescue StandardError
|
|
23
|
+
nil
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Module.include StubSupport
|
|
7
29
|
require "redis"
|
|
8
30
|
require "logster"
|
|
9
31
|
require "logster/base_store"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logster
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.21.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sam Saffron
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-04-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -186,10 +186,10 @@ files:
|
|
|
186
186
|
- assets/images/icon_144x144.png
|
|
187
187
|
- assets/images/icon_64x64.png
|
|
188
188
|
- assets/javascript/.gitkeep
|
|
189
|
-
- assets/javascript/chunk.
|
|
190
|
-
- assets/javascript/chunk.
|
|
191
|
-
- assets/javascript/chunk.
|
|
192
|
-
- assets/javascript/chunk.
|
|
189
|
+
- assets/javascript/chunk.524.b7d0b89d25457a72409c.js
|
|
190
|
+
- assets/javascript/chunk.582.5a04ae4713e692cd335a.js
|
|
191
|
+
- assets/javascript/chunk.747.a730c497582bb6742a6e.js
|
|
192
|
+
- assets/javascript/chunk.761.64949d89942c829e5c1b.js
|
|
193
193
|
- assets/javascript/client-app.js
|
|
194
194
|
- assets/javascript/vendor.js
|
|
195
195
|
- assets/stylesheets/.gitkeep
|
|
@@ -280,6 +280,7 @@ files:
|
|
|
280
280
|
- gemfiles/rails_6.1.gemfile
|
|
281
281
|
- gemfiles/rails_7.0.gemfile
|
|
282
282
|
- gemfiles/rails_7.1.gemfile
|
|
283
|
+
- gemfiles/rails_7.2.gemfile
|
|
283
284
|
- lib/examples/sidekiq_logster_reporter.rb
|
|
284
285
|
- lib/logster.rb
|
|
285
286
|
- lib/logster/base_store.rb
|