lamian 1.1.0 → 1.5.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 +5 -5
- data/.github/workflows/test.yml +56 -0
- data/.gitignore +10 -0
- data/.rubocop.yml +13 -0
- data/Changelog.md +55 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +278 -0
- data/LICENSE.txt +21 -0
- data/README.md +88 -0
- data/Rakefile +49 -0
- data/bin/console +8 -0
- data/bin/rake +17 -0
- data/bin/rubocop +16 -0
- data/bin/setup +8 -0
- data/lib/lamian/config.rb +4 -1
- data/lib/lamian/engine.rb +40 -0
- data/lib/lamian/logger.rb +1 -0
- data/lib/lamian/raven_context_extension.rb +2 -4
- data/lib/lamian/semantic_logger_appender.rb +24 -0
- data/lib/lamian/sentry_scope_patch.rb +17 -0
- data/lib/lamian/sidekiq_raven_middleware.rb +4 -6
- data/lib/lamian/sidekiq_sentry_middleware.rb +16 -0
- data/lib/lamian/version.rb +1 -1
- data/lib/lamian.rb +15 -3
- metadata +112 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d658a3a17f04025bed6140c233857a95f2e153332654d3fe6fbc2c10d0ef7916
|
4
|
+
data.tar.gz: 2b73f21507f4fa1e2a18ec20bfe57d613abbee01b079ed1fc78f12f966623854
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a8d7a403f777a0e2ddf846d7da980267d22b5d44665aed8e4794c851d5a92ce535a1e6e338cd100c4d1fe81eaa13290857ce4d44bddd557172aebd8803f1a23
|
7
|
+
data.tar.gz: c7b32c823fc0972a0039f4a2618671d8db045680b6b5b5158ba70c88bc06715b8fe0b431820cca705f0b28ebbc107171c097498da95d67ffa5814a9b8e2ca219
|
@@ -0,0 +1,56 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
env:
|
6
|
+
FULL_COVERAGE_CHECK: true
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
full-check:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
|
12
|
+
# We want to run on external PRs, but not on our own internal PRs as they'll be run on push event
|
13
|
+
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'umbrellio/lamian'
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
- uses: ruby/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
ruby-version: 3
|
20
|
+
bundler-cache: true
|
21
|
+
- name: Run Linter
|
22
|
+
run: bundle exec ci-helper RubocopLint
|
23
|
+
- name: Check missed spec suffixes
|
24
|
+
run: bundle exec ci-helper CheckSpecSuffixes --extra-paths spec/*.rb --ignored-paths spec/*_helper.rb
|
25
|
+
- name: Run specs
|
26
|
+
run: bundle exec ci-helper RunSpecs
|
27
|
+
- name: Audit
|
28
|
+
run: bundle exec ci-helper BundlerAudit
|
29
|
+
- name: Documentation coverage
|
30
|
+
run: bundle exec rake doc:coverage
|
31
|
+
- name: Coveralls
|
32
|
+
uses: coverallsapp/github-action@master
|
33
|
+
with:
|
34
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
35
|
+
specs:
|
36
|
+
runs-on: ubuntu-latest
|
37
|
+
|
38
|
+
env:
|
39
|
+
FULL_COVERAGE_CHECK: false
|
40
|
+
|
41
|
+
# We want to run on external PRs, but not on our own internal PRs as they'll be run on push event
|
42
|
+
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'umbrellio/lamian'
|
43
|
+
|
44
|
+
strategy:
|
45
|
+
fail-fast: false
|
46
|
+
matrix:
|
47
|
+
ruby: [2.6, 2.7]
|
48
|
+
|
49
|
+
steps:
|
50
|
+
- uses: actions/checkout@v2
|
51
|
+
- uses: ruby/setup-ruby@v1
|
52
|
+
with:
|
53
|
+
ruby-version: ${{ matrix.ruby }}
|
54
|
+
bundler-cache: true
|
55
|
+
- name: Run specs
|
56
|
+
run: bundle exec ci-helper RunSpecs
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
data/Changelog.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# Lamian version changes (since 0.1.0)
|
2
|
+
|
3
|
+
Update this on a pull request, under `Lamian::VERSION`
|
4
|
+
(also known as next version). If this constant would be changed without release,
|
5
|
+
I'll update it here too
|
6
|
+
|
7
|
+
## 1.3.0
|
8
|
+
* Add support for the (new sentry gem)[https://github.com/getsentry/sentry-ruby].
|
9
|
+
|
10
|
+
## 1.2.0
|
11
|
+
* Add `raven_log_size_limit` config option for limiting amount of data sent to sentry (defaults to `500_000`)
|
12
|
+
|
13
|
+
## 1.1.0
|
14
|
+
* Add support for sentry and sidekiq
|
15
|
+
|
16
|
+
## 1.0.0
|
17
|
+
|
18
|
+
* `6d8fee8` fixed a bug when ::Logger#log was not prepended. `::Logger#log` is an alias for `::Logger#add`,
|
19
|
+
which ruins concept of single entry point :(. Also tied it to lamian instance
|
20
|
+
|
21
|
+
## 0.3.3
|
22
|
+
|
23
|
+
* `8136689` fixed crashes when dump used outside lamian context
|
24
|
+
|
25
|
+
|
26
|
+
## 0.3.2
|
27
|
+
|
28
|
+
* `e57e6cec` Changed rails dependency from `~> 4.2` to `>= 4.2`
|
29
|
+
|
30
|
+
|
31
|
+
## 0.3.1
|
32
|
+
|
33
|
+
* 34ca83b5 Fixed formatting
|
34
|
+
|
35
|
+
Stabilized formatting api, which removes control sequences from loggers data.
|
36
|
+
E.g. `"[23mNice, lol[0m\n"` becomes `"Nice, lol\n"`
|
37
|
+
|
38
|
+
|
39
|
+
## 0.3.0
|
40
|
+
|
41
|
+
* `d24f895b` API update
|
42
|
+
|
43
|
+
Updated API, so lamian is now forced to be used with block.
|
44
|
+
It also simplified usage outside a middleware
|
45
|
+
|
46
|
+
|
47
|
+
## 0.2.0
|
48
|
+
* `3166517e` Added integrtation with rails
|
49
|
+
|
50
|
+
Injected middleware before `ExceptionNotification`, so `ExceptionNotification`
|
51
|
+
can use current log without any configuration. Also added some views
|
52
|
+
|
53
|
+
|
54
|
+
## 0.1.0
|
55
|
+
* `62eb8685` Made test version to check it's integration with rails application
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,278 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
lamian (1.5.0)
|
5
|
+
rails (>= 4.2)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
actioncable (6.1.4.1)
|
11
|
+
actionpack (= 6.1.4.1)
|
12
|
+
activesupport (= 6.1.4.1)
|
13
|
+
nio4r (~> 2.0)
|
14
|
+
websocket-driver (>= 0.6.1)
|
15
|
+
actionmailbox (6.1.4.1)
|
16
|
+
actionpack (= 6.1.4.1)
|
17
|
+
activejob (= 6.1.4.1)
|
18
|
+
activerecord (= 6.1.4.1)
|
19
|
+
activestorage (= 6.1.4.1)
|
20
|
+
activesupport (= 6.1.4.1)
|
21
|
+
mail (>= 2.7.1)
|
22
|
+
actionmailer (6.1.4.1)
|
23
|
+
actionpack (= 6.1.4.1)
|
24
|
+
actionview (= 6.1.4.1)
|
25
|
+
activejob (= 6.1.4.1)
|
26
|
+
activesupport (= 6.1.4.1)
|
27
|
+
mail (~> 2.5, >= 2.5.4)
|
28
|
+
rails-dom-testing (~> 2.0)
|
29
|
+
actionpack (6.1.4.1)
|
30
|
+
actionview (= 6.1.4.1)
|
31
|
+
activesupport (= 6.1.4.1)
|
32
|
+
rack (~> 2.0, >= 2.0.9)
|
33
|
+
rack-test (>= 0.6.3)
|
34
|
+
rails-dom-testing (~> 2.0)
|
35
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
36
|
+
actiontext (6.1.4.1)
|
37
|
+
actionpack (= 6.1.4.1)
|
38
|
+
activerecord (= 6.1.4.1)
|
39
|
+
activestorage (= 6.1.4.1)
|
40
|
+
activesupport (= 6.1.4.1)
|
41
|
+
nokogiri (>= 1.8.5)
|
42
|
+
actionview (6.1.4.1)
|
43
|
+
activesupport (= 6.1.4.1)
|
44
|
+
builder (~> 3.1)
|
45
|
+
erubi (~> 1.4)
|
46
|
+
rails-dom-testing (~> 2.0)
|
47
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
48
|
+
activejob (6.1.4.1)
|
49
|
+
activesupport (= 6.1.4.1)
|
50
|
+
globalid (>= 0.3.6)
|
51
|
+
activemodel (6.1.4.1)
|
52
|
+
activesupport (= 6.1.4.1)
|
53
|
+
activerecord (6.1.4.1)
|
54
|
+
activemodel (= 6.1.4.1)
|
55
|
+
activesupport (= 6.1.4.1)
|
56
|
+
activestorage (6.1.4.1)
|
57
|
+
actionpack (= 6.1.4.1)
|
58
|
+
activejob (= 6.1.4.1)
|
59
|
+
activerecord (= 6.1.4.1)
|
60
|
+
activesupport (= 6.1.4.1)
|
61
|
+
marcel (~> 1.0.0)
|
62
|
+
mini_mime (>= 1.1.0)
|
63
|
+
activesupport (6.1.4.1)
|
64
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
65
|
+
i18n (>= 1.6, < 2)
|
66
|
+
minitest (>= 5.1)
|
67
|
+
tzinfo (~> 2.0)
|
68
|
+
zeitwerk (~> 2.3)
|
69
|
+
addressable (2.8.0)
|
70
|
+
public_suffix (>= 2.0.2, < 5.0)
|
71
|
+
ast (2.4.2)
|
72
|
+
builder (3.2.4)
|
73
|
+
bundler-audit (0.9.0.1)
|
74
|
+
bundler (>= 1.2.0, < 3)
|
75
|
+
thor (~> 1.0)
|
76
|
+
ci-helper (0.4.2)
|
77
|
+
colorize (~> 0.8)
|
78
|
+
dry-inflector (~> 0.2)
|
79
|
+
umbrellio-sequel-plugins (~> 0.4)
|
80
|
+
coderay (1.1.3)
|
81
|
+
colorize (0.8.1)
|
82
|
+
concurrent-ruby (1.1.9)
|
83
|
+
crass (1.0.6)
|
84
|
+
diff-lcs (1.4.4)
|
85
|
+
docile (1.4.0)
|
86
|
+
dry-inflector (0.2.1)
|
87
|
+
erubi (1.10.0)
|
88
|
+
faraday (1.8.0)
|
89
|
+
faraday-em_http (~> 1.0)
|
90
|
+
faraday-em_synchrony (~> 1.0)
|
91
|
+
faraday-excon (~> 1.1)
|
92
|
+
faraday-httpclient (~> 1.0.1)
|
93
|
+
faraday-net_http (~> 1.0)
|
94
|
+
faraday-net_http_persistent (~> 1.1)
|
95
|
+
faraday-patron (~> 1.0)
|
96
|
+
faraday-rack (~> 1.0)
|
97
|
+
multipart-post (>= 1.2, < 3)
|
98
|
+
ruby2_keywords (>= 0.0.4)
|
99
|
+
faraday-em_http (1.0.0)
|
100
|
+
faraday-em_synchrony (1.0.0)
|
101
|
+
faraday-excon (1.1.0)
|
102
|
+
faraday-httpclient (1.0.1)
|
103
|
+
faraday-net_http (1.0.1)
|
104
|
+
faraday-net_http_persistent (1.2.0)
|
105
|
+
faraday-patron (1.0.0)
|
106
|
+
faraday-rack (1.0.0)
|
107
|
+
globalid (0.5.2)
|
108
|
+
activesupport (>= 5.0)
|
109
|
+
i18n (1.8.11)
|
110
|
+
concurrent-ruby (~> 1.0)
|
111
|
+
launchy (2.5.0)
|
112
|
+
addressable (~> 2.7)
|
113
|
+
loofah (2.12.0)
|
114
|
+
crass (~> 1.0.2)
|
115
|
+
nokogiri (>= 1.5.9)
|
116
|
+
mail (2.7.1)
|
117
|
+
mini_mime (>= 0.1.1)
|
118
|
+
marcel (1.0.2)
|
119
|
+
method_source (1.0.0)
|
120
|
+
mini_mime (1.1.2)
|
121
|
+
minitest (5.14.4)
|
122
|
+
multipart-post (2.1.1)
|
123
|
+
nio4r (2.5.8)
|
124
|
+
nokogiri (1.12.5-x86_64-darwin)
|
125
|
+
racc (~> 1.4)
|
126
|
+
nokogiri (1.12.5-x86_64-linux)
|
127
|
+
racc (~> 1.4)
|
128
|
+
parallel (1.21.0)
|
129
|
+
parser (3.0.2.0)
|
130
|
+
ast (~> 2.4.1)
|
131
|
+
pry (0.14.1)
|
132
|
+
coderay (~> 1.1)
|
133
|
+
method_source (~> 1.0)
|
134
|
+
public_suffix (4.0.6)
|
135
|
+
racc (1.6.0)
|
136
|
+
rack (2.2.3)
|
137
|
+
rack-test (1.1.0)
|
138
|
+
rack (>= 1.0, < 3)
|
139
|
+
rails (6.1.4.1)
|
140
|
+
actioncable (= 6.1.4.1)
|
141
|
+
actionmailbox (= 6.1.4.1)
|
142
|
+
actionmailer (= 6.1.4.1)
|
143
|
+
actionpack (= 6.1.4.1)
|
144
|
+
actiontext (= 6.1.4.1)
|
145
|
+
actionview (= 6.1.4.1)
|
146
|
+
activejob (= 6.1.4.1)
|
147
|
+
activemodel (= 6.1.4.1)
|
148
|
+
activerecord (= 6.1.4.1)
|
149
|
+
activestorage (= 6.1.4.1)
|
150
|
+
activesupport (= 6.1.4.1)
|
151
|
+
bundler (>= 1.15.0)
|
152
|
+
railties (= 6.1.4.1)
|
153
|
+
sprockets-rails (>= 2.0.0)
|
154
|
+
rails-dom-testing (2.0.3)
|
155
|
+
activesupport (>= 4.2.0)
|
156
|
+
nokogiri (>= 1.6)
|
157
|
+
rails-html-sanitizer (1.4.2)
|
158
|
+
loofah (~> 2.3)
|
159
|
+
railties (6.1.4.1)
|
160
|
+
actionpack (= 6.1.4.1)
|
161
|
+
activesupport (= 6.1.4.1)
|
162
|
+
method_source
|
163
|
+
rake (>= 0.13)
|
164
|
+
thor (~> 1.0)
|
165
|
+
rainbow (3.0.0)
|
166
|
+
rake (13.0.6)
|
167
|
+
regexp_parser (2.1.1)
|
168
|
+
rexml (3.2.5)
|
169
|
+
rspec (3.10.0)
|
170
|
+
rspec-core (~> 3.10.0)
|
171
|
+
rspec-expectations (~> 3.10.0)
|
172
|
+
rspec-mocks (~> 3.10.0)
|
173
|
+
rspec-core (3.10.1)
|
174
|
+
rspec-support (~> 3.10.0)
|
175
|
+
rspec-expectations (3.10.1)
|
176
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
177
|
+
rspec-support (~> 3.10.0)
|
178
|
+
rspec-mocks (3.10.2)
|
179
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
180
|
+
rspec-support (~> 3.10.0)
|
181
|
+
rspec-support (3.10.2)
|
182
|
+
rubocop (1.17.0)
|
183
|
+
parallel (~> 1.10)
|
184
|
+
parser (>= 3.0.0.0)
|
185
|
+
rainbow (>= 2.2.2, < 4.0)
|
186
|
+
regexp_parser (>= 1.8, < 3.0)
|
187
|
+
rexml
|
188
|
+
rubocop-ast (>= 1.7.0, < 2.0)
|
189
|
+
ruby-progressbar (~> 1.7)
|
190
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
191
|
+
rubocop-ast (1.12.0)
|
192
|
+
parser (>= 3.0.1.1)
|
193
|
+
rubocop-config-umbrellio (1.17.0.53)
|
194
|
+
rubocop (= 1.17.0)
|
195
|
+
rubocop-performance (= 1.10.0)
|
196
|
+
rubocop-rails (= 2.9.1)
|
197
|
+
rubocop-rake (= 0.5.1)
|
198
|
+
rubocop-rspec (= 2.2.0)
|
199
|
+
rubocop-sequel (= 0.2.0)
|
200
|
+
rubocop-performance (1.10.0)
|
201
|
+
rubocop (>= 0.90.0, < 2.0)
|
202
|
+
rubocop-ast (>= 0.4.0)
|
203
|
+
rubocop-rails (2.9.1)
|
204
|
+
activesupport (>= 4.2.0)
|
205
|
+
rack (>= 1.1)
|
206
|
+
rubocop (>= 0.90.0, < 2.0)
|
207
|
+
rubocop-rake (0.5.1)
|
208
|
+
rubocop
|
209
|
+
rubocop-rspec (2.2.0)
|
210
|
+
rubocop (~> 1.0)
|
211
|
+
rubocop-ast (>= 1.1.0)
|
212
|
+
rubocop-sequel (0.2.0)
|
213
|
+
rubocop (~> 1.0)
|
214
|
+
ruby-progressbar (1.11.0)
|
215
|
+
ruby2_keywords (0.0.5)
|
216
|
+
semantic_logger (4.8.2)
|
217
|
+
concurrent-ruby (~> 1.0)
|
218
|
+
sentry-raven (3.1.2)
|
219
|
+
faraday (>= 1.0)
|
220
|
+
sentry-ruby (4.7.3)
|
221
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
222
|
+
faraday (>= 1.0)
|
223
|
+
sentry-ruby-core (= 4.7.3)
|
224
|
+
sentry-ruby-core (4.7.3)
|
225
|
+
concurrent-ruby
|
226
|
+
faraday
|
227
|
+
sequel (5.50.0)
|
228
|
+
simplecov (0.21.2)
|
229
|
+
docile (~> 1.1)
|
230
|
+
simplecov-html (~> 0.11)
|
231
|
+
simplecov_json_formatter (~> 0.1)
|
232
|
+
simplecov-html (0.12.3)
|
233
|
+
simplecov-lcov (0.8.0)
|
234
|
+
simplecov_json_formatter (0.1.3)
|
235
|
+
sprockets (4.0.2)
|
236
|
+
concurrent-ruby (~> 1.0)
|
237
|
+
rack (> 1, < 3)
|
238
|
+
sprockets-rails (3.4.0)
|
239
|
+
actionpack (>= 5.2)
|
240
|
+
activesupport (>= 5.2)
|
241
|
+
sprockets (>= 3.0.0)
|
242
|
+
symbiont-ruby (0.7.0)
|
243
|
+
thor (1.1.0)
|
244
|
+
tzinfo (2.0.4)
|
245
|
+
concurrent-ruby (~> 1.0)
|
246
|
+
umbrellio-sequel-plugins (0.5.1.27)
|
247
|
+
sequel
|
248
|
+
symbiont-ruby
|
249
|
+
unicode-display_width (2.1.0)
|
250
|
+
websocket-driver (0.7.5)
|
251
|
+
websocket-extensions (>= 0.1.0)
|
252
|
+
websocket-extensions (0.1.5)
|
253
|
+
yard (0.9.26)
|
254
|
+
zeitwerk (2.5.1)
|
255
|
+
|
256
|
+
PLATFORMS
|
257
|
+
x86_64-darwin-19
|
258
|
+
x86_64-darwin-20
|
259
|
+
x86_64-linux
|
260
|
+
|
261
|
+
DEPENDENCIES
|
262
|
+
bundler-audit
|
263
|
+
ci-helper
|
264
|
+
lamian!
|
265
|
+
launchy
|
266
|
+
pry
|
267
|
+
rake
|
268
|
+
rspec
|
269
|
+
rubocop-config-umbrellio
|
270
|
+
semantic_logger
|
271
|
+
sentry-raven
|
272
|
+
sentry-ruby
|
273
|
+
simplecov
|
274
|
+
simplecov-lcov
|
275
|
+
yard
|
276
|
+
|
277
|
+
BUNDLED WITH
|
278
|
+
2.2.30
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2021 JelF, Umbrellio
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# Lamian
|
2
|
+
[](https://github.com/umbrellio/lamian/actions) [](https://coveralls.io/github/umbrellio/lamian?branch=master) [](https://badge.fury.io/rb/lamian)
|
3
|
+
|
4
|
+
|
5
|
+
Lamian is an in-memory logger, which content could be released for error messages.
|
6
|
+
It is designed to work in pair with `exception_notification` gem inside rails
|
7
|
+
aplications
|
8
|
+
|
9
|
+
## Usage with ExceptionNotification
|
10
|
+
|
11
|
+
1. Add `gem 'lamian'` into your Gemfile
|
12
|
+
2. Extend `Rails.logger` and any other loggers you want to mirror by
|
13
|
+
`Lamian::LoggerExtension`: `Lamian.extend_logger(logger)`
|
14
|
+
3. Add 'request_log' section inside your `ExceptionNotification.configure`
|
15
|
+
(see [ExceptionNotification README](https://github.com/smartinez87/exception_notification/blob/master/README.md))
|
16
|
+
4. ExceptionNotification's messages would have 'Request Log' section
|
17
|
+
|
18
|
+
## Extended Usage
|
19
|
+
|
20
|
+
Add a 'request_log' section into ExceptionNotification's background section.
|
21
|
+
Add `Lamian.run { }` around code with logs you want to collect. Note, that
|
22
|
+
logs would be accessible only inside this section and removed after section end.
|
23
|
+
|
24
|
+
## Sentry (sentry-ruby)
|
25
|
+
|
26
|
+
### Usage
|
27
|
+
|
28
|
+
It automatically redefines `Sentry.configuration.before_send` callback
|
29
|
+
if Sentry initialization is completed. If `before_send` is already defined
|
30
|
+
it wraps custom callback.
|
31
|
+
|
32
|
+
### Usage with Sidekiq
|
33
|
+
|
34
|
+
You should add Lamian middleware to the Sidekiq initializer like this:
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
config.server_middleware do |chain|
|
38
|
+
chain.prepend(Lamian::SidekiqSentryMiddleware)
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
### Usage with SemanticLogger
|
43
|
+
|
44
|
+
You should add Lamian appender to the SematicLogger appenders like this:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
SemanticLogger.add_appender(appender: Lamian::SemanticLoggerAppender.new)
|
48
|
+
```
|
49
|
+
|
50
|
+
### Patching Sentry Scope
|
51
|
+
|
52
|
+
If you want to send events asynchronously you need to patch `Sentry::Scope`.
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
# Somewhere in a initializer.
|
56
|
+
|
57
|
+
Sentry::Scope.prepend(Lamian::SentryScopePatch)
|
58
|
+
```
|
59
|
+
|
60
|
+
## Raven (deprecated)
|
61
|
+
|
62
|
+
### Usage
|
63
|
+
|
64
|
+
Add this line to your Sentry initializer:
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
Raven::Context.prepend(Lamian::RavenContextExtension)
|
68
|
+
```
|
69
|
+
|
70
|
+
### Usage with Sidekiq
|
71
|
+
|
72
|
+
You should add Lamian middleware to the Sidekiq initializer like this:
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
config.server_middleware do |chain|
|
76
|
+
chain.prepend(Lamian::SidekiqRavenMiddleware)
|
77
|
+
end
|
78
|
+
```
|
79
|
+
|
80
|
+
## Contribution
|
81
|
+
|
82
|
+
Feel free to contribute by making PRs and Issues on [GitHub](https://github.com/JelF/lamian)
|
83
|
+
You also can contact me using my email begdory4+lamian@gmail.com
|
84
|
+
|
85
|
+
## TODO
|
86
|
+
|
87
|
+
- It probably should be separated to `lamian` and `lamian-rails` gems.
|
88
|
+
Rails dependency is never cool
|
data/Rakefile
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
require "rspec/core/rake_task"
|
5
|
+
require "rubocop/rake_task"
|
6
|
+
require "yard"
|
7
|
+
require "pathname"
|
8
|
+
require "launchy"
|
9
|
+
require "uri"
|
10
|
+
|
11
|
+
ROOT = Pathname.new(__FILE__).join("..")
|
12
|
+
|
13
|
+
RSpec::Core::RakeTask.new(:spec)
|
14
|
+
RuboCop::RakeTask.new(:lint)
|
15
|
+
|
16
|
+
YARD::Rake::YardocTask.new(:doc) do |t|
|
17
|
+
t.files = Dir[ROOT.join("lib/**/*.rb")]
|
18
|
+
t.options = %w[--private]
|
19
|
+
end
|
20
|
+
|
21
|
+
def open_in_browser(path)
|
22
|
+
Launchy.open(URI.join("file:///", path.to_s))
|
23
|
+
end
|
24
|
+
|
25
|
+
namespace :doc do
|
26
|
+
desc "open doc"
|
27
|
+
task open: :doc do
|
28
|
+
open_in_browser ROOT.join("doc/frames.html")
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "checks doc coverage"
|
32
|
+
task coverage: :doc do
|
33
|
+
# ideally you've already generated the database to .load it
|
34
|
+
# if not, have this task depend on the docs task.
|
35
|
+
YARD::Registry.load
|
36
|
+
objs = YARD::Registry.select do |o|
|
37
|
+
puts "pending #{o}" if /TODO|FIXME|@pending/.match?(o.docstring)
|
38
|
+
o.docstring.blank?
|
39
|
+
end
|
40
|
+
|
41
|
+
next if objs.empty?
|
42
|
+
puts "No documentation found for:"
|
43
|
+
objs.each { |x| puts "\t#{x}" }
|
44
|
+
|
45
|
+
raise "100% document coverage required"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
task default: %i[lint doc:coverage spec]
|
data/bin/console
ADDED
data/bin/rake
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'rake' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
12
|
+
Pathname.new(__FILE__).realpath)
|
13
|
+
|
14
|
+
require "rubygems"
|
15
|
+
require "bundler/setup"
|
16
|
+
|
17
|
+
load Gem.bin_path("rake", "rake")
|
data/bin/rubocop
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# This file was generated by Bundler.
|
5
|
+
#
|
6
|
+
# The application 'rubocop' is installed as part of a gem, and
|
7
|
+
# this file is here to facilitate running it.
|
8
|
+
#
|
9
|
+
|
10
|
+
require "pathname"
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require "rubygems"
|
14
|
+
require "bundler/setup"
|
15
|
+
|
16
|
+
load Gem.bin_path("rubocop", "rubocop")
|
data/bin/setup
ADDED
data/lib/lamian/config.rb
CHANGED
@@ -6,9 +6,12 @@ module Lamian
|
|
6
6
|
# General lamian configuration class
|
7
7
|
# @attr formatter [Logger::Foramtter]
|
8
8
|
# formatter to use in lamian, global
|
9
|
-
|
9
|
+
# @attr raven_log_size_limit [Integer]
|
10
|
+
# size limit when sending lamian log to sentry, defaults to +500_000+
|
11
|
+
Config = Struct.new(:formatter, :raven_log_size_limit) do
|
10
12
|
def initialize
|
11
13
|
self.formatter = ::Logger::Formatter.new
|
14
|
+
self.raven_log_size_limit = 500_000
|
12
15
|
end
|
13
16
|
end
|
14
17
|
end
|
data/lib/lamian/engine.rb
CHANGED
@@ -14,5 +14,45 @@ module Lamian
|
|
14
14
|
app.config.middleware.unshift(Lamian::Middleware)
|
15
15
|
# :nocov:
|
16
16
|
end
|
17
|
+
|
18
|
+
config.after_initialize do
|
19
|
+
# :nocov:
|
20
|
+
next unless defined?(Sentry)
|
21
|
+
next unless Sentry.initialized?
|
22
|
+
|
23
|
+
Sentry.configuration.before_send = rebuild_before_send
|
24
|
+
# :nocov:
|
25
|
+
end
|
26
|
+
|
27
|
+
# Reassembles the callback that runs before sending the event to the Sentry:
|
28
|
+
# connects the user callback with the callback that adds lamian logs to the event.
|
29
|
+
# @private
|
30
|
+
# @return [Proc] final callback.
|
31
|
+
def rebuild_before_send
|
32
|
+
defined_callback = Sentry.configuration.before_send || build_default_lambda
|
33
|
+
lamian_callback = build_lamian_callback
|
34
|
+
|
35
|
+
proc { |*args, **kwargs| lamian_callback.call(defined_callback.call(*args, **kwargs)) }
|
36
|
+
end
|
37
|
+
|
38
|
+
# Builds a callback, which does nothing.
|
39
|
+
# @private
|
40
|
+
# @return [Proc] empty callback.
|
41
|
+
def build_default_lambda
|
42
|
+
-> (event, _hint) { event }
|
43
|
+
end
|
44
|
+
|
45
|
+
# Builds a callback that adds logs to the event.
|
46
|
+
# @private
|
47
|
+
# @return [Proc] callback.
|
48
|
+
def build_lamian_callback
|
49
|
+
lambda do |event|
|
50
|
+
event.tap do |event|
|
51
|
+
extra = event&.extra or return
|
52
|
+
log = Lamian.dump_limited
|
53
|
+
extra[Lamian::SENTRY_EXTRA_KEY] = log if log
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
17
57
|
end
|
18
58
|
end
|
data/lib/lamian/logger.rb
CHANGED
@@ -5,9 +5,7 @@ module Lamian::RavenContextExtension
|
|
5
5
|
# Adds current lamian log to the extra part of all raven events generated inside Lamian.run block
|
6
6
|
# @see https://www.rubydoc.info/gems/sentry-raven/0.9.2/Raven/Context#extra-instance_method
|
7
7
|
def extra
|
8
|
-
log = Lamian.
|
9
|
-
|
10
|
-
extra = super || {}
|
11
|
-
extra.merge(lamian_log: log)
|
8
|
+
log = Lamian.dump_limited
|
9
|
+
log ? super.merge!(Lamian::SENTRY_EXTRA_KEY => log) : super
|
12
10
|
end
|
13
11
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Lamian
|
4
|
+
# Custom appender for the `semantic_logger` library.
|
5
|
+
# This appender adds all logs to the current Lamian logger.
|
6
|
+
# Since Lamian stores logs in a thread variable,
|
7
|
+
# it is necessary that this appender writes logs synchronously:
|
8
|
+
# just call `SematicLogger.sync!` somewhere in the initialization process.
|
9
|
+
# @see https://logger.rocketjob.io Semantic Logger documentation.
|
10
|
+
class SemanticLoggerAppender < SemanticLogger::Subscriber
|
11
|
+
# Mapping between standard Logger severity and SemanticLogger log levels.
|
12
|
+
LOGGER_LEVELS_MAPPING = { trace: 0, debug: 0, info: 1, warn: 2, error: 3, fatal: 4 }.freeze
|
13
|
+
|
14
|
+
# The method to be implemented when creating a custom appender.
|
15
|
+
# @see https://logger.rocketjob.io/custom_appenders.html Documentation about custom appenders.
|
16
|
+
# @returns [Boolean]
|
17
|
+
def log(log)
|
18
|
+
mapped_level = LOGGER_LEVELS_MAPPING[log.level] || ::Logger::UNKNOWN
|
19
|
+
Lamian::Logger.current.add(mapped_level, log.message)
|
20
|
+
|
21
|
+
true
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Lamian
|
4
|
+
# Patch for the `Sentry::Scope`. Extends the attribute accessor
|
5
|
+
# by adding an automatic lamian log dump.
|
6
|
+
# You should use this patch if you want to asynchronously send events.
|
7
|
+
# @example Prepending `Sentry::Scope` class
|
8
|
+
# Sentry::Scope.prepend(Lamian::SentryScopePatch) #=> Sentry::Scope
|
9
|
+
module SentryScopePatch
|
10
|
+
# Extra data defined in the scope.
|
11
|
+
# @return [String]
|
12
|
+
def extra
|
13
|
+
log = Lamian.dump(format: :txt)&.slice(0, Lamian.config.raven_log_size_limit)
|
14
|
+
log ? super.merge!(Lamian::SENTRY_EXTRA_KEY => log) : super
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -5,12 +5,10 @@ class Lamian::SidekiqRavenMiddleware
|
|
5
5
|
# Adds current lamian log to the extra part of raven events generated inside sidekiq jobs
|
6
6
|
def call(*)
|
7
7
|
Lamian.run do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
raise
|
13
|
-
end
|
8
|
+
yield
|
9
|
+
rescue Exception # rubocop:disable Lint/RescueException
|
10
|
+
Raven.extra_context # Just trigger saving of the current log
|
11
|
+
raise
|
14
12
|
end
|
15
13
|
end
|
16
14
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A sidekiq middleware
|
4
|
+
class Lamian::SidekiqSentryMiddleware
|
5
|
+
# Adds current lamian log to the extra part of raven events generated inside sidekiq jobs
|
6
|
+
def call(*)
|
7
|
+
Lamian.run do
|
8
|
+
yield
|
9
|
+
rescue Exception # rubocop:disable Lint/RescueException
|
10
|
+
# Save current log
|
11
|
+
log = Lamian.dump_limited
|
12
|
+
Sentry.set_extras(Lamian::SENTRY_EXTRA_KEY => log) if log
|
13
|
+
raise
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/lamian/version.rb
CHANGED
data/lib/lamian.rb
CHANGED
@@ -12,6 +12,12 @@ module Lamian
|
|
12
12
|
autoload :Middleware, "lamian/middleware"
|
13
13
|
autoload :RavenContextExtension, "lamian/raven_context_extension"
|
14
14
|
autoload :SidekiqRavenMiddleware, "lamian/sidekiq_raven_middleware"
|
15
|
+
autoload :SidekiqSentryMiddleware, "lamian/sidekiq_sentry_middleware"
|
16
|
+
autoload :SemanticLoggerAppender, "lamian/semantic_logger_appender"
|
17
|
+
autoload :SentryScopePatch, "lamian/sentry_scope_patch"
|
18
|
+
|
19
|
+
# The key under which logs are stored in the Sentry extra data.
|
20
|
+
SENTRY_EXTRA_KEY = :lamian_log
|
15
21
|
|
16
22
|
require "lamian/engine"
|
17
23
|
|
@@ -45,12 +51,12 @@ module Lamian
|
|
45
51
|
end
|
46
52
|
|
47
53
|
# Collects logs sent inside block
|
48
|
-
def run
|
49
|
-
logger.run
|
54
|
+
def run(&block)
|
55
|
+
logger.run(&block)
|
50
56
|
end
|
51
57
|
|
52
58
|
# Dumps log collected in this run
|
53
|
-
# @
|
59
|
+
# @param format [Symbol]
|
54
60
|
# requested format of log. At this point, returns raw log if falsey
|
55
61
|
# or log without controll sequences (such as '[23m') if truthy
|
56
62
|
# value given (for now)
|
@@ -58,5 +64,11 @@ module Lamian
|
|
58
64
|
def dump(format: nil)
|
59
65
|
logger.dump(format: format)
|
60
66
|
end
|
67
|
+
|
68
|
+
# Truncates the collected log to the specified limit and dumps it.
|
69
|
+
# @return [String, nil] truncated formatted log.
|
70
|
+
def dump_limited
|
71
|
+
dump(format: :txt)&.slice(0, Lamian.config.raven_log_size_limit)
|
72
|
+
end
|
61
73
|
end
|
62
74
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lamian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JelF
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -25,145 +25,187 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
28
|
+
name: bundler-audit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: ci-helper
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: launchy
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
32
67
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
34
76
|
type: :development
|
35
77
|
prerelease: false
|
36
78
|
version_requirements: !ruby/object:Gem::Requirement
|
37
79
|
requirements:
|
38
|
-
- - "
|
80
|
+
- - ">="
|
39
81
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
82
|
+
version: '0'
|
41
83
|
- !ruby/object:Gem::Dependency
|
42
84
|
name: rake
|
43
85
|
requirement: !ruby/object:Gem::Requirement
|
44
86
|
requirements:
|
45
|
-
- - "
|
87
|
+
- - ">="
|
46
88
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
89
|
+
version: '0'
|
48
90
|
type: :development
|
49
91
|
prerelease: false
|
50
92
|
version_requirements: !ruby/object:Gem::Requirement
|
51
93
|
requirements:
|
52
|
-
- - "
|
94
|
+
- - ">="
|
53
95
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
96
|
+
version: '0'
|
55
97
|
- !ruby/object:Gem::Dependency
|
56
98
|
name: rspec
|
57
99
|
requirement: !ruby/object:Gem::Requirement
|
58
100
|
requirements:
|
59
|
-
- - "
|
101
|
+
- - ">="
|
60
102
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
103
|
+
version: '0'
|
62
104
|
type: :development
|
63
105
|
prerelease: false
|
64
106
|
version_requirements: !ruby/object:Gem::Requirement
|
65
107
|
requirements:
|
66
|
-
- - "
|
108
|
+
- - ">="
|
67
109
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
110
|
+
version: '0'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: rubocop-config-umbrellio
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
72
114
|
requirements:
|
73
|
-
- -
|
115
|
+
- - ">="
|
74
116
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0
|
117
|
+
version: '0'
|
76
118
|
type: :development
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
79
121
|
requirements:
|
80
|
-
- -
|
122
|
+
- - ">="
|
81
123
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0
|
124
|
+
version: '0'
|
83
125
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
126
|
+
name: semantic_logger
|
85
127
|
requirement: !ruby/object:Gem::Requirement
|
86
128
|
requirements:
|
87
|
-
- - "
|
129
|
+
- - ">="
|
88
130
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
131
|
+
version: '0'
|
90
132
|
type: :development
|
91
133
|
prerelease: false
|
92
134
|
version_requirements: !ruby/object:Gem::Requirement
|
93
135
|
requirements:
|
94
|
-
- - "
|
136
|
+
- - ">="
|
95
137
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
138
|
+
version: '0'
|
97
139
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
140
|
+
name: sentry-raven
|
99
141
|
requirement: !ruby/object:Gem::Requirement
|
100
142
|
requirements:
|
101
|
-
- - "
|
143
|
+
- - ">="
|
102
144
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0
|
145
|
+
version: '0'
|
104
146
|
type: :development
|
105
147
|
prerelease: false
|
106
148
|
version_requirements: !ruby/object:Gem::Requirement
|
107
149
|
requirements:
|
108
|
-
- - "
|
150
|
+
- - ">="
|
109
151
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0
|
152
|
+
version: '0'
|
111
153
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
154
|
+
name: sentry-ruby
|
113
155
|
requirement: !ruby/object:Gem::Requirement
|
114
156
|
requirements:
|
115
|
-
- - "
|
157
|
+
- - ">="
|
116
158
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0
|
159
|
+
version: '0'
|
118
160
|
type: :development
|
119
161
|
prerelease: false
|
120
162
|
version_requirements: !ruby/object:Gem::Requirement
|
121
163
|
requirements:
|
122
|
-
- - "
|
164
|
+
- - ">="
|
123
165
|
- !ruby/object:Gem::Version
|
124
|
-
version: '0
|
166
|
+
version: '0'
|
125
167
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
168
|
+
name: simplecov
|
127
169
|
requirement: !ruby/object:Gem::Requirement
|
128
170
|
requirements:
|
129
|
-
- - "
|
171
|
+
- - ">="
|
130
172
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
173
|
+
version: '0'
|
132
174
|
type: :development
|
133
175
|
prerelease: false
|
134
176
|
version_requirements: !ruby/object:Gem::Requirement
|
135
177
|
requirements:
|
136
|
-
- - "
|
178
|
+
- - ">="
|
137
179
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
180
|
+
version: '0'
|
139
181
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
182
|
+
name: simplecov-lcov
|
141
183
|
requirement: !ruby/object:Gem::Requirement
|
142
184
|
requirements:
|
143
185
|
- - ">="
|
144
186
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
187
|
+
version: '0'
|
146
188
|
type: :development
|
147
189
|
prerelease: false
|
148
190
|
version_requirements: !ruby/object:Gem::Requirement
|
149
191
|
requirements:
|
150
192
|
- - ">="
|
151
193
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
194
|
+
version: '0'
|
153
195
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
196
|
+
name: yard
|
155
197
|
requirement: !ruby/object:Gem::Requirement
|
156
198
|
requirements:
|
157
|
-
- - "
|
199
|
+
- - ">="
|
158
200
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
201
|
+
version: '0'
|
160
202
|
type: :development
|
161
203
|
prerelease: false
|
162
204
|
version_requirements: !ruby/object:Gem::Requirement
|
163
205
|
requirements:
|
164
|
-
- - "
|
206
|
+
- - ">="
|
165
207
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
208
|
+
version: '0'
|
167
209
|
description: Add logs to your error messages, using exception_notifier or smth like
|
168
210
|
it
|
169
211
|
email:
|
@@ -172,6 +214,19 @@ executables: []
|
|
172
214
|
extensions: []
|
173
215
|
extra_rdoc_files: []
|
174
216
|
files:
|
217
|
+
- ".github/workflows/test.yml"
|
218
|
+
- ".gitignore"
|
219
|
+
- ".rubocop.yml"
|
220
|
+
- Changelog.md
|
221
|
+
- Gemfile
|
222
|
+
- Gemfile.lock
|
223
|
+
- LICENSE.txt
|
224
|
+
- README.md
|
225
|
+
- Rakefile
|
226
|
+
- bin/console
|
227
|
+
- bin/rake
|
228
|
+
- bin/rubocop
|
229
|
+
- bin/setup
|
175
230
|
- lib/lamian.rb
|
176
231
|
- lib/lamian/config.rb
|
177
232
|
- lib/lamian/engine.rb
|
@@ -181,12 +236,16 @@ files:
|
|
181
236
|
- lib/lamian/rails_views/exception_notifier/_request_log.html.erb
|
182
237
|
- lib/lamian/rails_views/exception_notifier/_request_log.text.erb
|
183
238
|
- lib/lamian/raven_context_extension.rb
|
239
|
+
- lib/lamian/semantic_logger_appender.rb
|
240
|
+
- lib/lamian/sentry_scope_patch.rb
|
184
241
|
- lib/lamian/sidekiq_raven_middleware.rb
|
242
|
+
- lib/lamian/sidekiq_sentry_middleware.rb
|
185
243
|
- lib/lamian/version.rb
|
186
244
|
homepage: https://github.com/umbrellio/lamian
|
187
|
-
licenses:
|
245
|
+
licenses:
|
246
|
+
- MIT
|
188
247
|
metadata: {}
|
189
|
-
post_install_message:
|
248
|
+
post_install_message:
|
190
249
|
rdoc_options: []
|
191
250
|
require_paths:
|
192
251
|
- lib
|
@@ -194,16 +253,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
253
|
requirements:
|
195
254
|
- - ">="
|
196
255
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
256
|
+
version: 2.5.0
|
198
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
258
|
requirements:
|
200
259
|
- - ">="
|
201
260
|
- !ruby/object:Gem::Version
|
202
261
|
version: '0'
|
203
262
|
requirements: []
|
204
|
-
|
205
|
-
|
206
|
-
signing_key:
|
263
|
+
rubygems_version: 3.3.0.dev
|
264
|
+
signing_key:
|
207
265
|
specification_version: 4
|
208
266
|
summary: Add logs to your error messages
|
209
267
|
test_files: []
|