logster 2.12.2 → 2.13.1

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +5 -0
  3. data/.streerc +2 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Gemfile +1 -1
  6. data/README.md +7 -6
  7. data/assets/javascript/{chunk.143.f61340b825c6a3bf6dbe.js → chunk.143.5bf090e78cbca9ee78cc.js} +4 -4
  8. data/assets/javascript/{chunk.178.6d9ae01775c898e7b748.js → chunk.178.135370942038cfbbe65e.js} +3 -3
  9. data/assets/javascript/client-app.js +103 -35
  10. data/client-app/app/controllers/show.js +17 -1
  11. data/client-app/app/templates/show.hbs +2 -0
  12. data/client-app/package.json +1 -1
  13. data/client-app/preload-json-manager.rb +10 -17
  14. data/client-app/yarn.lock +131 -44
  15. data/lib/examples/sidekiq_logster_reporter.rb +5 -7
  16. data/lib/logster/base_store.rb +26 -22
  17. data/lib/logster/cache.rb +2 -1
  18. data/lib/logster/configuration.rb +3 -3
  19. data/lib/logster/defer_logger.rb +2 -4
  20. data/lib/logster/group.rb +17 -20
  21. data/lib/logster/ignore_pattern.rb +1 -2
  22. data/lib/logster/logger.rb +18 -16
  23. data/lib/logster/message.rb +53 -57
  24. data/lib/logster/middleware/debug_exceptions.rb +12 -10
  25. data/lib/logster/middleware/reporter.rb +17 -26
  26. data/lib/logster/middleware/viewer.rb +77 -97
  27. data/lib/logster/pattern.rb +4 -7
  28. data/lib/logster/rails/railtie.rb +10 -13
  29. data/lib/logster/redis_rate_limiter.rb +2 -7
  30. data/lib/logster/redis_store.rb +79 -99
  31. data/lib/logster/scheduler.rb +1 -5
  32. data/lib/logster/suppression_pattern.rb +7 -5
  33. data/lib/logster/version.rb +1 -1
  34. data/lib/logster/web.rb +1 -1
  35. data/lib/logster.rb +15 -17
  36. data/logster.gemspec +14 -14
  37. data/test/examples/test_sidekiq_reporter_example.rb +8 -9
  38. data/test/fake_data/generate.rb +14 -3
  39. data/test/logster/middleware/test_reporter.rb +9 -7
  40. data/test/logster/middleware/test_viewer.rb +117 -101
  41. data/test/logster/test_base_store.rb +79 -58
  42. data/test/logster/test_cache.rb +5 -11
  43. data/test/logster/test_defer_logger.rb +3 -3
  44. data/test/logster/test_group.rb +14 -18
  45. data/test/logster/test_ignore_pattern.rb +2 -3
  46. data/test/logster/test_logger.rb +14 -14
  47. data/test/logster/test_message.rb +29 -31
  48. data/test/logster/test_pattern.rb +7 -15
  49. data/test/logster/test_redis_rate_limiter.rb +35 -21
  50. data/test/logster/test_redis_store.rb +239 -151
  51. data/test/test_helper.rb +9 -9
  52. metadata +19 -4
data/client-app/yarn.lock CHANGED
@@ -17,6 +17,14 @@
17
17
  dependencies:
18
18
  "@babel/highlight" "^7.18.6"
19
19
 
20
+ "@babel/code-frame@^7.22.13":
21
+ version "7.22.13"
22
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
23
+ integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
24
+ dependencies:
25
+ "@babel/highlight" "^7.22.13"
26
+ chalk "^2.4.2"
27
+
20
28
  "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
21
29
  version "7.21.0"
22
30
  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298"
@@ -52,7 +60,7 @@
52
60
  eslint-visitor-keys "^2.1.0"
53
61
  semver "^6.3.0"
54
62
 
55
- "@babel/generator@^7.21.0", "@babel/generator@^7.21.1":
63
+ "@babel/generator@^7.21.0":
56
64
  version "7.21.1"
57
65
  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd"
58
66
  integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==
@@ -62,6 +70,16 @@
62
70
  "@jridgewell/trace-mapping" "^0.3.17"
63
71
  jsesc "^2.5.1"
64
72
 
73
+ "@babel/generator@^7.23.0":
74
+ version "7.23.0"
75
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
76
+ integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
77
+ dependencies:
78
+ "@babel/types" "^7.23.0"
79
+ "@jridgewell/gen-mapping" "^0.3.2"
80
+ "@jridgewell/trace-mapping" "^0.3.17"
81
+ jsesc "^2.5.1"
82
+
65
83
  "@babel/helper-annotate-as-pure@^7.18.6":
66
84
  version "7.18.6"
67
85
  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -127,6 +145,11 @@
127
145
  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
128
146
  integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
129
147
 
148
+ "@babel/helper-environment-visitor@^7.22.20":
149
+ version "7.22.20"
150
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
151
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
152
+
130
153
  "@babel/helper-explode-assignable-expression@^7.18.6":
131
154
  version "7.18.6"
132
155
  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
@@ -142,6 +165,14 @@
142
165
  "@babel/template" "^7.20.7"
143
166
  "@babel/types" "^7.21.0"
144
167
 
168
+ "@babel/helper-function-name@^7.23.0":
169
+ version "7.23.0"
170
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
171
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
172
+ dependencies:
173
+ "@babel/template" "^7.22.15"
174
+ "@babel/types" "^7.23.0"
175
+
145
176
  "@babel/helper-hoist-variables@^7.18.6":
146
177
  version "7.18.6"
147
178
  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
@@ -149,6 +180,13 @@
149
180
  dependencies:
150
181
  "@babel/types" "^7.18.6"
151
182
 
183
+ "@babel/helper-hoist-variables@^7.22.5":
184
+ version "7.22.5"
185
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
186
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
187
+ dependencies:
188
+ "@babel/types" "^7.22.5"
189
+
152
190
  "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
153
191
  version "7.21.0"
154
192
  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
@@ -232,16 +270,33 @@
232
270
  dependencies:
233
271
  "@babel/types" "^7.18.6"
234
272
 
273
+ "@babel/helper-split-export-declaration@^7.22.6":
274
+ version "7.22.6"
275
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
276
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
277
+ dependencies:
278
+ "@babel/types" "^7.22.5"
279
+
235
280
  "@babel/helper-string-parser@^7.19.4":
236
281
  version "7.19.4"
237
282
  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
238
283
  integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
239
284
 
285
+ "@babel/helper-string-parser@^7.22.5":
286
+ version "7.22.5"
287
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
288
+ integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
289
+
240
290
  "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
241
291
  version "7.19.1"
242
292
  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
243
293
  integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
244
294
 
295
+ "@babel/helper-validator-identifier@^7.22.20":
296
+ version "7.22.20"
297
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
298
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
299
+
245
300
  "@babel/helper-validator-option@^7.18.6":
246
301
  version "7.21.0"
247
302
  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
@@ -275,11 +330,25 @@
275
330
  chalk "^2.0.0"
276
331
  js-tokens "^4.0.0"
277
332
 
278
- "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0":
333
+ "@babel/highlight@^7.22.13":
334
+ version "7.22.20"
335
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54"
336
+ integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==
337
+ dependencies:
338
+ "@babel/helper-validator-identifier" "^7.22.20"
339
+ chalk "^2.4.2"
340
+ js-tokens "^4.0.0"
341
+
342
+ "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0":
279
343
  version "7.21.2"
280
344
  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3"
281
345
  integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==
282
346
 
347
+ "@babel/parser@^7.22.15", "@babel/parser@^7.23.0":
348
+ version "7.23.0"
349
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
350
+ integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
351
+
283
352
  "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
284
353
  version "7.18.6"
285
354
  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
@@ -979,19 +1048,28 @@
979
1048
  "@babel/parser" "^7.20.7"
980
1049
  "@babel/types" "^7.20.7"
981
1050
 
982
- "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0":
983
- version "7.21.2"
984
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75"
985
- integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==
1051
+ "@babel/template@^7.22.15":
1052
+ version "7.22.15"
1053
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
1054
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
986
1055
  dependencies:
987
- "@babel/code-frame" "^7.18.6"
988
- "@babel/generator" "^7.21.1"
989
- "@babel/helper-environment-visitor" "^7.18.9"
990
- "@babel/helper-function-name" "^7.21.0"
991
- "@babel/helper-hoist-variables" "^7.18.6"
992
- "@babel/helper-split-export-declaration" "^7.18.6"
993
- "@babel/parser" "^7.21.2"
994
- "@babel/types" "^7.21.2"
1056
+ "@babel/code-frame" "^7.22.13"
1057
+ "@babel/parser" "^7.22.15"
1058
+ "@babel/types" "^7.22.15"
1059
+
1060
+ "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0":
1061
+ version "7.23.2"
1062
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
1063
+ integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
1064
+ dependencies:
1065
+ "@babel/code-frame" "^7.22.13"
1066
+ "@babel/generator" "^7.23.0"
1067
+ "@babel/helper-environment-visitor" "^7.22.20"
1068
+ "@babel/helper-function-name" "^7.23.0"
1069
+ "@babel/helper-hoist-variables" "^7.22.5"
1070
+ "@babel/helper-split-export-declaration" "^7.22.6"
1071
+ "@babel/parser" "^7.23.0"
1072
+ "@babel/types" "^7.23.0"
995
1073
  debug "^4.1.0"
996
1074
  globals "^11.1.0"
997
1075
 
@@ -1004,6 +1082,15 @@
1004
1082
  "@babel/helper-validator-identifier" "^7.19.1"
1005
1083
  to-fast-properties "^2.0.0"
1006
1084
 
1085
+ "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0":
1086
+ version "7.23.0"
1087
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
1088
+ integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
1089
+ dependencies:
1090
+ "@babel/helper-string-parser" "^7.22.5"
1091
+ "@babel/helper-validator-identifier" "^7.22.20"
1092
+ to-fast-properties "^2.0.0"
1093
+
1007
1094
  "@cnakazawa/watch@^1.0.3":
1008
1095
  version "1.0.4"
1009
1096
  resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
@@ -4275,9 +4362,9 @@ engine.io-parser@~5.0.3:
4275
4362
  integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==
4276
4363
 
4277
4364
  engine.io@~6.4.1:
4278
- version "6.4.1"
4279
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.4.1.tgz#8056b4526a88e779f9c280d820422d4e3eeaaae5"
4280
- integrity sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==
4365
+ version "6.4.2"
4366
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.4.2.tgz#ffeaf68f69b1364b0286badddf15ff633476473f"
4367
+ integrity sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==
4281
4368
  dependencies:
4282
4369
  "@types/cookie" "^0.4.1"
4283
4370
  "@types/cors" "^2.8.12"
@@ -7039,10 +7126,10 @@ mute-stream@0.0.8:
7039
7126
  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
7040
7127
  integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
7041
7128
 
7042
- nanoid@^3.3.4:
7043
- version "3.3.4"
7044
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
7045
- integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
7129
+ nanoid@^3.3.6:
7130
+ version "3.3.6"
7131
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
7132
+ integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
7046
7133
 
7047
7134
  nanomatch@^1.2.9:
7048
7135
  version "1.2.13"
@@ -7697,11 +7784,11 @@ postcss-value-parser@^4.1.0:
7697
7784
  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
7698
7785
 
7699
7786
  postcss@^8.2.15:
7700
- version "8.4.21"
7701
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
7702
- integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
7787
+ version "8.4.31"
7788
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
7789
+ integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
7703
7790
  dependencies:
7704
- nanoid "^3.3.4"
7791
+ nanoid "^3.3.6"
7705
7792
  picocolors "^1.0.0"
7706
7793
  source-map-js "^1.0.2"
7707
7794
 
@@ -8268,19 +8355,19 @@ schema-utils@^4.0.0:
8268
8355
  ajv-keywords "^5.0.0"
8269
8356
 
8270
8357
  "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
8271
- version "5.7.1"
8272
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
8273
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
8358
+ version "5.7.2"
8359
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
8360
+ integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
8274
8361
 
8275
8362
  semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
8276
- version "6.3.0"
8277
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
8278
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
8363
+ version "6.3.1"
8364
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
8365
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
8279
8366
 
8280
8367
  semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8:
8281
- version "7.3.8"
8282
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
8283
- integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
8368
+ version "7.5.4"
8369
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
8370
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
8284
8371
  dependencies:
8285
8372
  lru-cache "^6.0.0"
8286
8373
 
@@ -8478,9 +8565,9 @@ socket.io-adapter@~2.5.2:
8478
8565
  ws "~8.11.0"
8479
8566
 
8480
8567
  socket.io-parser@~4.2.1:
8481
- version "4.2.2"
8482
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206"
8483
- integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==
8568
+ version "4.2.3"
8569
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.3.tgz#926bcc6658e2ae0883dc9dee69acbdc76e4e3667"
8570
+ integrity sha512-JMafRntWVO2DCJimKsRTh/wnqVvO4hrfwOqtO7f+uzwsQMuxO6VwImtYxaQ+ieoyshWOTJyV0fA21lccEXRPpQ==
8484
8571
  dependencies:
8485
8572
  "@socket.io/component-emitter" "~3.1.0"
8486
8573
  debug "~4.3.1"
@@ -9447,10 +9534,10 @@ webpack-sources@^3.2.3:
9447
9534
  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
9448
9535
  integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
9449
9536
 
9450
- webpack@^5.75.0:
9451
- version "5.75.0"
9452
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.75.0.tgz#1e440468647b2505860e94c9ff3e44d5b582c152"
9453
- integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==
9537
+ webpack@^5.76.0:
9538
+ version "5.76.0"
9539
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c"
9540
+ integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==
9454
9541
  dependencies:
9455
9542
  "@types/eslint-scope" "^3.7.3"
9456
9543
  "@types/estree" "^0.0.51"
@@ -9554,9 +9641,9 @@ wide-align@^1.1.5:
9554
9641
  string-width "^1.0.2 || 2 || 3 || 4"
9555
9642
 
9556
9643
  word-wrap@^1.2.3:
9557
- version "1.2.3"
9558
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
9559
- integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
9644
+ version "1.2.4"
9645
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f"
9646
+ integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==
9560
9647
 
9561
9648
  wordwrap@^0.0.3:
9562
9649
  version "0.0.3"
@@ -4,19 +4,17 @@ class SidekiqLogsterReporter
4
4
  def call(ex, context = {})
5
5
  # Pass context to Logster
6
6
  fake_env = {}
7
- context.each do |key, value|
8
- Logster.add_to_env(fake_env, key, value)
9
- end
7
+ context.each { |key, value| Logster.add_to_env(fake_env, key, value) }
10
8
 
11
9
  text = "Job exception: #{ex}\n"
12
- if ex.backtrace
13
- Logster.add_to_env(fake_env, :backtrace, ex.backtrace)
14
- end
10
+ Logster.add_to_env(fake_env, :backtrace, ex.backtrace) if ex.backtrace
15
11
 
16
12
  Thread.current[Logster::Logger::LOGSTER_ENV] = fake_env
17
13
  Logster.logger.error(text)
18
14
  rescue => e
19
- Logster.logger.fatal("Failed to log exception #{ex} #{hash}\nReason: #{e.class} #{e}\n#{e.backtrace.join("\n")}")
15
+ Logster.logger.fatal(
16
+ "Failed to log exception #{ex} #{hash}\nReason: #{e.class} #{e}\n#{e.backtrace.join("\n")}",
17
+ )
20
18
  ensure
21
19
  Thread.current[Logster::Logger::LOGSTER_ENV] = nil
22
20
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Logster
4
4
  class BaseStore
5
-
6
5
  attr_accessor :level, :max_retention, :skip_empty, :ignore, :allow_custom_patterns
7
6
 
8
7
  def initialize
@@ -166,31 +165,35 @@ module Logster
166
165
  message.populate_from_env(env)
167
166
 
168
167
  if backtrace
169
- if backtrace.respond_to? :join
170
- backtrace = backtrace.join("\n")
171
- end
168
+ backtrace = backtrace.join("\n") if backtrace.respond_to? :join
172
169
  message.backtrace = backtrace
173
170
  else
174
171
  message.backtrace = caller.join("\n")
175
172
  end
176
173
 
177
- return if ignore && ignore.any? do |pattern|
178
- if message =~ pattern
179
- val = Regexp === pattern ? pattern.inspect : pattern.to_s
180
- increment_ignore_count(val)
181
- true
182
- end
174
+ if ignore &&
175
+ ignore.any? { |pattern|
176
+ if message =~ pattern
177
+ val = Regexp === pattern ? pattern.inspect : pattern.to_s
178
+ increment_ignore_count(val)
179
+ true
180
+ end
181
+ }
182
+ return
183
183
  end
184
184
 
185
185
  if Logster.config.enable_custom_patterns_via_ui || allow_custom_patterns
186
- custom_ignore = @patterns_cache.fetch(Logster::SuppressionPattern::CACHE_KEY) do
187
- Logster::SuppressionPattern.find_all(store: self)
188
- end
189
- return if custom_ignore.any? do |pattern|
190
- if message =~ pattern
191
- increment_ignore_count(pattern.inspect)
192
- true
186
+ custom_ignore =
187
+ @patterns_cache.fetch(Logster::SuppressionPattern::CACHE_KEY) do
188
+ Logster::SuppressionPattern.find_all(store: self)
193
189
  end
190
+ if custom_ignore.any? { |pattern|
191
+ if message =~ pattern
192
+ increment_ignore_count(pattern.inspect)
193
+ true
194
+ end
195
+ }
196
+ return
194
197
  end
195
198
  end
196
199
 
@@ -199,7 +202,7 @@ module Logster
199
202
  if Logster.config.allow_grouping
200
203
  message.apply_message_size_limit(
201
204
  Logster.config.maximum_message_size_bytes,
202
- gems_dir: Logster.config.gems_dir
205
+ gems_dir: Logster.config.gems_dir,
203
206
  )
204
207
  key = self.similar_key(message)
205
208
  similar = get(key, load_env: false) if key
@@ -215,7 +218,7 @@ module Logster
215
218
  else
216
219
  message.apply_message_size_limit(
217
220
  Logster.config.maximum_message_size_bytes,
218
- gems_dir: Logster.config.gems_dir
221
+ gems_dir: Logster.config.gems_dir,
219
222
  )
220
223
  saved = save(message)
221
224
  message
@@ -224,9 +227,10 @@ module Logster
224
227
  message = similar || message
225
228
 
226
229
  if (Logster.config.enable_custom_patterns_via_ui || allow_custom_patterns) && saved
227
- grouping_patterns = @patterns_cache.fetch(Logster::GroupingPattern::CACHE_KEY) do
228
- Logster::GroupingPattern.find_all(store: self)
229
- end
230
+ grouping_patterns =
231
+ @patterns_cache.fetch(Logster::GroupingPattern::CACHE_KEY) do
232
+ Logster::GroupingPattern.find_all(store: self)
233
+ end
230
234
 
231
235
  grouping_patterns.each do |pattern|
232
236
  if message =~ pattern
data/lib/logster/cache.rb CHANGED
@@ -8,7 +8,8 @@ module Logster
8
8
  end
9
9
 
10
10
  def fetch(key)
11
- if !@hash.key?(key) || @hash[key][:created_at] + @age < Process.clock_gettime(Process::CLOCK_MONOTONIC)
11
+ if !@hash.key?(key) ||
12
+ @hash[key][:created_at] + @age < Process.clock_gettime(Process::CLOCK_MONOTONIC)
12
13
  @hash[key] = { data: yield, created_at: Process.clock_gettime(Process::CLOCK_MONOTONIC) }
13
14
  end
14
15
  @hash[key][:data]
@@ -19,7 +19,7 @@ module Logster
19
19
  :max_env_bytes,
20
20
  :max_env_count_per_message,
21
21
  :maximum_message_length,
22
- :use_full_hostname
22
+ :use_full_hostname,
23
23
  )
24
24
 
25
25
  attr_writer :subdirectory
@@ -27,7 +27,7 @@ module Logster
27
27
  def initialize
28
28
  # lambda |env,block|
29
29
  @current_context = lambda { |_, &block| block.call }
30
- @environments = [:development, :production]
30
+ @environments = %i[development production]
31
31
  @subdirectory = nil
32
32
  @env_expandable_keys = []
33
33
  @enable_custom_patterns_via_ui = false
@@ -50,7 +50,7 @@ module Logster
50
50
  end
51
51
 
52
52
  def subdirectory
53
- @subdirectory || '/logs'
53
+ @subdirectory || "/logs"
54
54
  end
55
55
  end
56
56
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'logster/scheduler'
3
+ require "logster/scheduler"
4
4
 
5
5
  module Logster
6
6
  class DeferLogger < ::Logster::Logger
@@ -8,9 +8,7 @@ module Logster
8
8
 
9
9
  def report_to_store(severity, progname, message, opts = {})
10
10
  opts[:backtrace] ||= caller.join("\n")
11
- Logster::Scheduler.schedule do
12
- super(severity, progname, message, opts)
13
- end
11
+ Logster::Scheduler.schedule { super(severity, progname, message, opts) }
14
12
  end
15
13
  end
16
14
  end
data/lib/logster/group.rb CHANGED
@@ -17,12 +17,13 @@ module Logster
17
17
 
18
18
  def self.from_json(json)
19
19
  hash = JSON.parse(json)
20
- group = new(
21
- hash["key"],
22
- hash["messages_keys"],
23
- timestamp: hash["timestamp"] || 0,
24
- count: hash["count"] || 0
25
- )
20
+ group =
21
+ new(
22
+ hash["key"],
23
+ hash["messages_keys"],
24
+ timestamp: hash["timestamp"] || 0,
25
+ count: hash["count"] || 0,
26
+ )
26
27
  group.changed = false
27
28
  group
28
29
  end
@@ -32,12 +33,7 @@ module Logster
32
33
  end
33
34
 
34
35
  def to_h
35
- {
36
- key: @key,
37
- messages_keys: @messages_keys,
38
- timestamp: @timestamp,
39
- count: @count
40
- }
36
+ { key: @key, messages_keys: @messages_keys, timestamp: @timestamp, count: @count }
41
37
  end
42
38
 
43
39
  def to_h_web
@@ -47,7 +43,7 @@ module Logster
47
43
  timestamp: @timestamp,
48
44
  messages: @messages,
49
45
  severity: -1,
50
- group: true
46
+ group: true,
51
47
  }
52
48
  end
53
49
 
@@ -111,14 +107,15 @@ module Logster
111
107
  self.class.max_size
112
108
  end
113
109
 
114
- GroupWeb = Struct.new(*%i[regex count timestamp messages row_id]) do
115
- def to_json(opts = nil)
116
- JSON.fast_generate(self.to_h.merge(severity: -1, group: true), opts)
117
- end
110
+ GroupWeb =
111
+ Struct.new(*%i[regex count timestamp messages row_id]) do
112
+ def to_json(opts = nil)
113
+ JSON.fast_generate(self.to_h.merge(severity: -1, group: true), opts)
114
+ end
118
115
 
119
- def key
120
- self.regex # alias for testing convenience
116
+ def key
117
+ self.regex # alias for testing convenience
118
+ end
121
119
  end
122
- end
123
120
  end
124
121
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Logster
4
4
  class IgnorePattern
5
-
6
5
  def initialize(message_pattern = nil, env_patterns = nil)
7
6
  @msg_match = message_pattern
8
7
  @env_match = env_patterns
@@ -44,7 +43,7 @@ module Logster
44
43
  else
45
44
  false
46
45
  end
47
- else
46
+ else
48
47
  false
49
48
  end
50
49
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'logger'
3
+ require "logger"
4
4
 
5
5
  module Logster
6
6
  class Logger < ::Logger
@@ -41,9 +41,7 @@ module Logster
41
41
  logger.add(severity, message, progname, &block)
42
42
  end
43
43
  ensure
44
- if logger.respond_to? :skip_store
45
- logger.skip_store = old
46
- end
44
+ logger.skip_store = old if logger.respond_to? :skip_store
47
45
  end
48
46
 
49
47
  def add(*args, &block)
@@ -55,15 +53,11 @@ module Logster
55
53
  end
56
54
 
57
55
  def add_with_opts(severity, message = nil, progname = progname(), opts = nil, &block)
58
- if severity < level
59
- return true
60
- end
56
+ return true if severity < level
61
57
 
62
58
  # it is not fun losing messages cause encoding is bad
63
59
  # protect all messages by scrubbing if needed
64
- if message && !message.valid_encoding?
65
- message = message.scrub
66
- end
60
+ message = message.scrub if message && !message.valid_encoding?
67
61
 
68
62
  # we want to get the backtrace as early as possible so that logster's
69
63
  # own methods don't show up as the first few frames in the backtrace
@@ -73,9 +67,7 @@ module Logster
73
67
  backtrace ||= progname.backtrace if progname.kind_of?(::Exception)
74
68
  if !backtrace
75
69
  backtrace = caller_locations
76
- while backtrace.first.path.end_with?("/logger.rb")
77
- backtrace.shift
78
- end
70
+ backtrace.shift while backtrace.first.path.end_with?("/logger.rb")
79
71
  end
80
72
  backtrace = backtrace.join("\n")
81
73
  opts[:backtrace] = backtrace
@@ -90,12 +82,18 @@ module Logster
90
82
  add_to_chained(@chained[i], severity, message, progname, opts, &block)
91
83
  rescue => e
92
84
  # don't blow up if STDERR is somehow closed
93
- STDERR.puts "Failed to report message to chained logger #{e}" rescue nil
85
+ begin
86
+ STDERR.puts "Failed to report message to chained logger #{e}"
87
+ rescue StandardError
88
+ nil
89
+ end
94
90
  end
95
91
  i += 1
96
92
  end
97
93
  end
98
94
 
95
+ return if @skip_store
96
+
99
97
  progname ||= @progname
100
98
  if message.nil?
101
99
  if block_given?
@@ -106,7 +104,7 @@ module Logster
106
104
  end
107
105
  end
108
106
 
109
- return if @skip_store
107
+ message = formatter.call(severity, Time.now, progname, message) if formatter
110
108
 
111
109
  opts ||= {}
112
110
  opts[:env] ||= Thread.current[LOGSTER_ENV]
@@ -114,7 +112,11 @@ module Logster
114
112
  report_to_store(severity, progname, message, opts)
115
113
  rescue => e
116
114
  # don't blow up if STDERR is somehow closed
117
- STDERR.puts "Failed to report error: #{e} #{severity} #{message} #{progname}" rescue nil
115
+ begin
116
+ STDERR.puts "Failed to report error: #{e} #{severity} #{message} #{progname}"
117
+ rescue StandardError
118
+ nil
119
+ end
118
120
  end
119
121
 
120
122
  private