logster 2.9.1 → 2.9.6

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.
@@ -99,7 +99,7 @@ module Logster
99
99
  env["time"] = @timestamp || get_timestamp
100
100
  end
101
101
  end
102
- @env = Message.populate_from_env(env)
102
+ self.env = Message.populate_from_env(env)
103
103
  end
104
104
 
105
105
  def self.default_env
@@ -113,7 +113,8 @@ module Logster
113
113
 
114
114
  # in its own method so it can be overridden
115
115
  def grouping_hash
116
- { message: self.message, severity: self.severity, backtrace: self.backtrace }
116
+ message = self.message.gsub(/[0-9a-f]+/i, "X")
117
+ { message: message, severity: self.severity, backtrace: self.backtrace }
117
118
  end
118
119
 
119
120
  # todo - memoize?
@@ -342,7 +342,10 @@ module Logster
342
342
  def rate_limited?(ip_address, perform: false, limit: 60)
343
343
  key = ip_rate_limit_key(ip_address)
344
344
 
345
- limited = @redis.exists(key)
345
+ limited = @redis.call([:exists, key])
346
+ if Integer === limited
347
+ limited = limited != 0
348
+ end
346
349
 
347
350
  if perform && !limited
348
351
  @redis.setex key, limit, ""
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Logster
4
- VERSION = "2.9.1"
4
+ VERSION = "2.9.6"
5
5
  end
data/logster.gemspec CHANGED
@@ -33,5 +33,5 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "guard-minitest"
34
34
  spec.add_development_dependency "timecop"
35
35
  spec.add_development_dependency "byebug", "~> 11.1.0"
36
- spec.add_development_dependency "rubocop-discourse", "~> 2.1.2"
36
+ spec.add_development_dependency "rubocop-discourse"
37
37
  end
@@ -28,19 +28,19 @@ class TestReporter < Minitest::Test
28
28
 
29
29
  reporter = Logster::Middleware::Reporter.new(nil)
30
30
  env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello")
31
- status, = reporter.call(env)
31
+ reporter.call(env)
32
32
 
33
33
  assert_equal(Logger::Severity::WARN, Logster.store.latest[-1].severity)
34
34
 
35
35
  reporter = Logster::Middleware::Reporter.new(nil)
36
36
  env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello&severity=invalid")
37
- status, = reporter.call(env)
37
+ reporter.call(env)
38
38
 
39
39
  assert_equal(Logger::Severity::WARN, Logster.store.latest[-1].severity)
40
40
 
41
41
  reporter = Logster::Middleware::Reporter.new(nil)
42
42
  env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello&severity=error")
43
- status, = reporter.call(env)
43
+ reporter.call(env)
44
44
 
45
45
  assert_equal(Logger::Severity::ERROR, Logster.store.latest[-1].severity)
46
46
  end
@@ -188,4 +188,16 @@ class TestBaseStore < Minitest::Test
188
188
  refute_includes(store.reported.first.env.keys.map(&:to_sym), :backtrace)
189
189
  end
190
190
  end
191
+
192
+ def test_envs_with_invalid_encoding_dont_raise_errors
193
+ msg = @store.report(
194
+ Logger::WARN,
195
+ '',
196
+ 'me have invalid encoding',
197
+ env: {
198
+ axe: "a\xF1xasa"
199
+ }
200
+ )
201
+ assert_equal("a�xasa", msg.env[:axe])
202
+ end
191
203
  end
@@ -1044,6 +1044,24 @@ class TestRedisStore < Minitest::Test
1044
1044
  end
1045
1045
  end
1046
1046
 
1047
+ def test_messages_that_differ_only_by_numbers_or_hashes_are_merged
1048
+ config_reset(allow_grouping: true) do
1049
+ first_message = <<~TEXT
1050
+ DistributedMutex("download_20450e291e8f1e5ba03ca7f20fb7d9da570c94a6"):
1051
+ held for too long, expected max: 60 secs, took an extra 73 secs
1052
+ TEXT
1053
+ msg = @store.report(Logger::WARN, '', first_message, backtrace: caller)
1054
+
1055
+ second_message = <<~TEXT
1056
+ DistributedMutex("download_e09ae082c60a351dedec67ed869652862b232a0b"):
1057
+ held for too long, expected max: 60 secs, took an extra 287 secs
1058
+ TEXT
1059
+ msg2 = @store.report(Logger::WARN, '', second_message, backtrace: caller)
1060
+
1061
+ assert_equal(msg.key, msg2.key)
1062
+ end
1063
+ end
1064
+
1047
1065
  private
1048
1066
 
1049
1067
  def config_reset(configs)
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.9.1
4
+ version: 2.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-20 00:00:00.000000000 Z
11
+ date: 2021-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -126,16 +126,16 @@ dependencies:
126
126
  name: rubocop-discourse
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 2.1.2
131
+ version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 2.1.2
138
+ version: '0'
139
139
  description: UI for viewing logs in Rack
140
140
  email:
141
141
  - sam.saffron@gmail.com
@@ -143,9 +143,9 @@ executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
145
145
  files:
146
+ - ".github/workflows/ci.yml"
146
147
  - ".gitignore"
147
148
  - ".rubocop.yml"
148
- - ".travis.yml"
149
149
  - CHANGELOG.md
150
150
  - Gemfile
151
151
  - Guardfile
@@ -280,7 +280,7 @@ homepage: https://github.com/discourse/logster
280
280
  licenses:
281
281
  - MIT
282
282
  metadata: {}
283
- post_install_message:
283
+ post_install_message:
284
284
  rdoc_options: []
285
285
  require_paths:
286
286
  - lib
@@ -295,8 +295,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
295
295
  - !ruby/object:Gem::Version
296
296
  version: '0'
297
297
  requirements: []
298
- rubygems_version: 3.1.2
299
- signing_key:
298
+ rubygems_version: 3.1.4
299
+ signing_key:
300
300
  specification_version: 4
301
301
  summary: UI for viewing logs in Rack
302
302
  test_files:
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
-
3
- matrix:
4
- fast_finish: true
5
-
6
- rvm:
7
- - 2.5.3
8
- - 2.6.5
9
- - 2.7.0
10
-
11
- services:
12
- - redis-server
13
-
14
- before_install:
15
- - gem install bundler -v 1.17.2
16
-
17
- sudo: false