berkeley_library-logging 0.2.0 → 0.2.1

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: 55747e6057035bf2f9f2d078ba3f66a6c0456891d7bde0fc019898ee28582ac1
4
- data.tar.gz: c8c9f150c6278fa08b239fc1ace35211d09e1b33bc85a172e6025ae5e18d4756
3
+ metadata.gz: f88d32f15e7f95d27b1ec0ba158068a7d2950a22e89ae2b169fccc4aa385c3f6
4
+ data.tar.gz: '07193aef296c9b347993c02304ff506b9789ec45e6362b86180ab9da00c84519'
5
5
  SHA512:
6
- metadata.gz: c72ac07ab71e93d87bbc6dc2479a243e1fb17f68a9eb373112d99b59587c35fd81b42c259f79f519c016a0abe0700c9c13d19c249e14d730b33216548c5168e3
7
- data.tar.gz: 05dbcb9d79db5886f908d3f3965c4c303f9dd04a382feb6ce38bdc2557ec5d25f27f3ce945129cf88f95eebf9ab9239f0ee2b0658ee832a93de58decb2af4c5c
6
+ metadata.gz: a1d6d0b7d9692ef52ea6b266d2cdf782d90bea3caa1cacc785191445b21b1fdf0daf6126ebdf0f45278635c3d9abed4f5b239dc4d013aab91410a2cb949165d5
7
+ data.tar.gz: 8eba0dc24f2d163827d415ccbbe780d0f3b23c3d5b6e583573b55c15a48d11e1c1ab6098c33cdc18b98461945f9ca19fad8c7158b572c9c8ec2825e35fd52a69
@@ -0,0 +1,18 @@
1
+ name: Build
2
+ on: [ push, pull_request ]
3
+ jobs:
4
+ test:
5
+ strategy:
6
+ fail-fast: false
7
+ matrix:
8
+ os: [ ubuntu-latest, macos-latest ]
9
+ ruby-version: [ '2.7', '3.0' ]
10
+ runs-on: ${{ matrix.os }}
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: ${{ matrix.ruby }}
17
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
18
+ - run: bundle exec rake
data/.idea/logging.iml CHANGED
@@ -9,93 +9,93 @@
9
9
  <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
10
  <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
11
  </content>
12
- <orderEntry type="jdk" jdkName="RVM: ruby-2.7.3" jdkType="RUBY_SDK" />
12
+ <orderEntry type="jdk" jdkName="RVM: ruby-2.7.4" jdkType="RUBY_SDK" />
13
13
  <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="actioncable (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="actionmailbox (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="actionmailer (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="actionpack (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="actiontext (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="actionview (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="activejob (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="activemodel (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="activerecord (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="activestorage (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="activesupport (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="amazing_print (v1.3.0, RVM: ruby-2.7.3) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="ansi (v1.5.0, RVM: ruby-2.7.3) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, RVM: ruby-2.7.3) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="brakeman (v4.10.1, RVM: ruby-2.7.3) [gem]" level="application" />
29
- <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.4, RVM: ruby-2.7.3) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="bundle-audit (v0.1.0, RVM: ruby-2.7.3) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.14, RVM: ruby-2.7.3) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="bundler-audit (v0.8.0, RVM: ruby-2.7.3) [gem]" level="application" />
33
- <orderEntry type="library" scope="PROVIDED" name="ci_reporter (v2.0.0, RVM: ruby-2.7.3) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="ci_reporter_rspec (v1.0.0, RVM: ruby-2.7.3) [gem]" level="application" />
35
- <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, RVM: ruby-2.7.3) [gem]" level="application" />
36
- <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.9, RVM: ruby-2.7.3) [gem]" level="application" />
37
- <orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, RVM: ruby-2.7.3) [gem]" level="application" />
38
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.4.4, RVM: ruby-2.7.3) [gem]" level="application" />
39
- <orderEntry type="library" scope="PROVIDED" name="docile (v1.4.0, RVM: ruby-2.7.3) [gem]" level="application" />
40
- <orderEntry type="library" scope="PROVIDED" name="dotenv (v2.7.6, RVM: ruby-2.7.3) [gem]" level="application" />
41
- <orderEntry type="library" scope="PROVIDED" name="erubi (v1.10.0, RVM: ruby-2.7.3) [gem]" level="application" />
42
- <orderEntry type="library" scope="PROVIDED" name="ffi (v1.15.3, RVM: ruby-2.7.3) [gem]" level="application" />
43
- <orderEntry type="library" scope="PROVIDED" name="globalid (v0.5.2, RVM: ruby-2.7.3) [gem]" level="application" />
44
- <orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.10, RVM: ruby-2.7.3) [gem]" level="application" />
45
- <orderEntry type="library" scope="PROVIDED" name="io-console (v0.5.9, RVM: ruby-2.7.3) [gem]" level="application" />
46
- <orderEntry type="library" scope="PROVIDED" name="irb (v1.3.7, RVM: ruby-2.7.3) [gem]" level="application" />
47
- <orderEntry type="library" scope="PROVIDED" name="listen (v3.1.5, RVM: ruby-2.7.3) [gem]" level="application" />
48
- <orderEntry type="library" scope="PROVIDED" name="lograge (v0.11.2, RVM: ruby-2.7.3) [gem]" level="application" />
49
- <orderEntry type="library" scope="PROVIDED" name="loofah (v2.12.0, RVM: ruby-2.7.3) [gem]" level="application" />
50
- <orderEntry type="library" scope="PROVIDED" name="mail (v2.7.1, RVM: ruby-2.7.3) [gem]" level="application" />
51
- <orderEntry type="library" scope="PROVIDED" name="marcel (v1.0.1, RVM: ruby-2.7.3) [gem]" level="application" />
52
- <orderEntry type="library" scope="PROVIDED" name="method_source (v1.0.0, RVM: ruby-2.7.3) [gem]" level="application" />
53
- <orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.1.0, RVM: ruby-2.7.3) [gem]" level="application" />
54
- <orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.4, RVM: ruby-2.7.3) [gem]" level="application" />
55
- <orderEntry type="library" scope="PROVIDED" name="nio4r (v2.5.8, RVM: ruby-2.7.3) [gem]" level="application" />
56
- <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.12.3, RVM: ruby-2.7.3) [gem]" level="application" />
57
- <orderEntry type="library" scope="PROVIDED" name="oj (v3.13.2, RVM: ruby-2.7.3) [gem]" level="application" />
58
- <orderEntry type="library" scope="PROVIDED" name="ougai (v1.9.1, RVM: ruby-2.7.3) [gem]" level="application" />
59
- <orderEntry type="library" scope="PROVIDED" name="parallel (v1.20.1, RVM: ruby-2.7.3) [gem]" level="application" />
60
- <orderEntry type="library" scope="PROVIDED" name="parser (v3.0.2.0, RVM: ruby-2.7.3) [gem]" level="application" />
61
- <orderEntry type="library" scope="PROVIDED" name="racc (v1.5.2, RVM: ruby-2.7.3) [gem]" level="application" />
62
- <orderEntry type="library" scope="PROVIDED" name="rack (v2.2.3, RVM: ruby-2.7.3) [gem]" level="application" />
63
- <orderEntry type="library" scope="PROVIDED" name="rack-test (v1.1.0, RVM: ruby-2.7.3) [gem]" level="application" />
64
- <orderEntry type="library" scope="PROVIDED" name="rails (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
65
- <orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.3, RVM: ruby-2.7.3) [gem]" level="application" />
66
- <orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.4.1, RVM: ruby-2.7.3) [gem]" level="application" />
67
- <orderEntry type="library" scope="PROVIDED" name="railties (v6.1.4, RVM: ruby-2.7.3) [gem]" level="application" />
68
- <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.0.0, RVM: ruby-2.7.3) [gem]" level="application" />
69
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-2.7.3) [gem]" level="application" />
70
- <orderEntry type="library" scope="PROVIDED" name="rb-fsevent (v0.11.0, RVM: ruby-2.7.3) [gem]" level="application" />
71
- <orderEntry type="library" scope="PROVIDED" name="rb-inotify (v0.10.1, RVM: ruby-2.7.3) [gem]" level="application" />
72
- <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.1.1, RVM: ruby-2.7.3) [gem]" level="application" />
73
- <orderEntry type="library" scope="PROVIDED" name="reline (v0.2.7, RVM: ruby-2.7.3) [gem]" level="application" />
74
- <orderEntry type="library" scope="PROVIDED" name="request_store (v1.5.0, RVM: ruby-2.7.3) [gem]" level="application" />
75
- <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-2.7.3) [gem]" level="application" />
76
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.10.0, RVM: ruby-2.7.3) [gem]" level="application" />
77
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.10.1, RVM: ruby-2.7.3) [gem]" level="application" />
78
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.10.1, RVM: ruby-2.7.3) [gem]" level="application" />
79
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.10.2, RVM: ruby-2.7.3) [gem]" level="application" />
80
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.10.2, RVM: ruby-2.7.3) [gem]" level="application" />
81
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.91.1, RVM: ruby-2.7.3) [gem]" level="application" />
82
- <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v0.8.0, RVM: ruby-2.7.3) [gem]" level="application" />
83
- <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-2.7.3) [gem]" level="application" />
84
- <orderEntry type="library" scope="PROVIDED" name="ruby_dep (v1.5.0, RVM: ruby-2.7.3) [gem]" level="application" />
85
- <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.21.2, RVM: ruby-2.7.3) [gem]" level="application" />
86
- <orderEntry type="library" scope="PROVIDED" name="simplecov-console (v0.9.1, RVM: ruby-2.7.3) [gem]" level="application" />
87
- <orderEntry type="library" scope="PROVIDED" name="simplecov-html (v0.12.3, RVM: ruby-2.7.3) [gem]" level="application" />
88
- <orderEntry type="library" scope="PROVIDED" name="simplecov-rcov (v0.2.3, RVM: ruby-2.7.3) [gem]" level="application" />
89
- <orderEntry type="library" scope="PROVIDED" name="simplecov_json_formatter (v0.1.3, RVM: ruby-2.7.3) [gem]" level="application" />
90
- <orderEntry type="library" scope="PROVIDED" name="sprockets (v4.0.2, RVM: ruby-2.7.3) [gem]" level="application" />
91
- <orderEntry type="library" scope="PROVIDED" name="sprockets-rails (v3.2.2, RVM: ruby-2.7.3) [gem]" level="application" />
92
- <orderEntry type="library" scope="PROVIDED" name="terminal-table (v3.0.1, RVM: ruby-2.7.3) [gem]" level="application" />
93
- <orderEntry type="library" scope="PROVIDED" name="thor (v1.1.0, RVM: ruby-2.7.3) [gem]" level="application" />
94
- <orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.4, RVM: ruby-2.7.3) [gem]" level="application" />
95
- <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.7.0, RVM: ruby-2.7.3) [gem]" level="application" />
96
- <orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.5, RVM: ruby-2.7.3) [gem]" level="application" />
97
- <orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, RVM: ruby-2.7.3) [gem]" level="application" />
98
- <orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.4.2, RVM: ruby-2.7.3) [gem]" level="application" />
14
+ <orderEntry type="library" scope="PROVIDED" name="actioncable (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
15
+ <orderEntry type="library" scope="PROVIDED" name="actionmailbox (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
16
+ <orderEntry type="library" scope="PROVIDED" name="actionmailer (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="actionpack (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="actiontext (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="actionview (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="activejob (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="activemodel (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="activerecord (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="activestorage (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
24
+ <orderEntry type="library" scope="PROVIDED" name="activesupport (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
25
+ <orderEntry type="library" scope="PROVIDED" name="amazing_print (v1.3.0, RVM: ruby-2.7.4) [gem]" level="application" />
26
+ <orderEntry type="library" scope="PROVIDED" name="ansi (v1.5.0, RVM: ruby-2.7.4) [gem]" level="application" />
27
+ <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, RVM: ruby-2.7.4) [gem]" level="application" />
28
+ <orderEntry type="library" scope="PROVIDED" name="brakeman (v4.10.1, RVM: ruby-2.7.4) [gem]" level="application" />
29
+ <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.4, RVM: ruby-2.7.4) [gem]" level="application" />
30
+ <orderEntry type="library" scope="PROVIDED" name="bundle-audit (v0.1.0, RVM: ruby-2.7.4) [gem]" level="application" />
31
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.14, RVM: ruby-2.7.4) [gem]" level="application" />
32
+ <orderEntry type="library" scope="PROVIDED" name="bundler-audit (v0.8.0, RVM: ruby-2.7.4) [gem]" level="application" />
33
+ <orderEntry type="library" scope="PROVIDED" name="ci_reporter (v2.0.0, RVM: ruby-2.7.4) [gem]" level="application" />
34
+ <orderEntry type="library" scope="PROVIDED" name="ci_reporter_rspec (v1.0.0, RVM: ruby-2.7.4) [gem]" level="application" />
35
+ <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, RVM: ruby-2.7.4) [gem]" level="application" />
36
+ <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.9, RVM: ruby-2.7.4) [gem]" level="application" />
37
+ <orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, RVM: ruby-2.7.4) [gem]" level="application" />
38
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.4.4, RVM: ruby-2.7.4) [gem]" level="application" />
39
+ <orderEntry type="library" scope="PROVIDED" name="docile (v1.4.0, RVM: ruby-2.7.4) [gem]" level="application" />
40
+ <orderEntry type="library" scope="PROVIDED" name="dotenv (v2.7.6, RVM: ruby-2.7.4) [gem]" level="application" />
41
+ <orderEntry type="library" scope="PROVIDED" name="erubi (v1.10.0, RVM: ruby-2.7.4) [gem]" level="application" />
42
+ <orderEntry type="library" scope="PROVIDED" name="ffi (v1.15.3, RVM: ruby-2.7.4) [gem]" level="application" />
43
+ <orderEntry type="library" scope="PROVIDED" name="globalid (v0.5.2, RVM: ruby-2.7.4) [gem]" level="application" />
44
+ <orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.10, RVM: ruby-2.7.4) [gem]" level="application" />
45
+ <orderEntry type="library" scope="PROVIDED" name="io-console (v0.5.9, RVM: ruby-2.7.4) [gem]" level="application" />
46
+ <orderEntry type="library" scope="PROVIDED" name="irb (v1.3.7, RVM: ruby-2.7.4) [gem]" level="application" />
47
+ <orderEntry type="library" scope="PROVIDED" name="listen (v3.1.5, RVM: ruby-2.7.4) [gem]" level="application" />
48
+ <orderEntry type="library" scope="PROVIDED" name="lograge (v0.11.2, RVM: ruby-2.7.4) [gem]" level="application" />
49
+ <orderEntry type="library" scope="PROVIDED" name="loofah (v2.12.0, RVM: ruby-2.7.4) [gem]" level="application" />
50
+ <orderEntry type="library" scope="PROVIDED" name="mail (v2.7.1, RVM: ruby-2.7.4) [gem]" level="application" />
51
+ <orderEntry type="library" scope="PROVIDED" name="marcel (v1.0.1, RVM: ruby-2.7.4) [gem]" level="application" />
52
+ <orderEntry type="library" scope="PROVIDED" name="method_source (v1.0.0, RVM: ruby-2.7.4) [gem]" level="application" />
53
+ <orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.1.0, RVM: ruby-2.7.4) [gem]" level="application" />
54
+ <orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.4, RVM: ruby-2.7.4) [gem]" level="application" />
55
+ <orderEntry type="library" scope="PROVIDED" name="nio4r (v2.5.8, RVM: ruby-2.7.4) [gem]" level="application" />
56
+ <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.12.3, RVM: ruby-2.7.4) [gem]" level="application" />
57
+ <orderEntry type="library" scope="PROVIDED" name="oj (v3.13.2, RVM: ruby-2.7.4) [gem]" level="application" />
58
+ <orderEntry type="library" scope="PROVIDED" name="ougai (v1.9.1, RVM: ruby-2.7.4) [gem]" level="application" />
59
+ <orderEntry type="library" scope="PROVIDED" name="parallel (v1.20.1, RVM: ruby-2.7.4) [gem]" level="application" />
60
+ <orderEntry type="library" scope="PROVIDED" name="parser (v3.0.2.0, RVM: ruby-2.7.4) [gem]" level="application" />
61
+ <orderEntry type="library" scope="PROVIDED" name="racc (v1.5.2, RVM: ruby-2.7.4) [gem]" level="application" />
62
+ <orderEntry type="library" scope="PROVIDED" name="rack (v2.2.3, RVM: ruby-2.7.4) [gem]" level="application" />
63
+ <orderEntry type="library" scope="PROVIDED" name="rack-test (v1.1.0, RVM: ruby-2.7.4) [gem]" level="application" />
64
+ <orderEntry type="library" scope="PROVIDED" name="rails (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
65
+ <orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.3, RVM: ruby-2.7.4) [gem]" level="application" />
66
+ <orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.4.1, RVM: ruby-2.7.4) [gem]" level="application" />
67
+ <orderEntry type="library" scope="PROVIDED" name="railties (v6.1.4, RVM: ruby-2.7.4) [gem]" level="application" />
68
+ <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.0.0, RVM: ruby-2.7.4) [gem]" level="application" />
69
+ <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-2.7.4) [gem]" level="application" />
70
+ <orderEntry type="library" scope="PROVIDED" name="rb-fsevent (v0.11.0, RVM: ruby-2.7.4) [gem]" level="application" />
71
+ <orderEntry type="library" scope="PROVIDED" name="rb-inotify (v0.10.1, RVM: ruby-2.7.4) [gem]" level="application" />
72
+ <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.1.1, RVM: ruby-2.7.4) [gem]" level="application" />
73
+ <orderEntry type="library" scope="PROVIDED" name="reline (v0.2.7, RVM: ruby-2.7.4) [gem]" level="application" />
74
+ <orderEntry type="library" scope="PROVIDED" name="request_store (v1.5.0, RVM: ruby-2.7.4) [gem]" level="application" />
75
+ <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-2.7.4) [gem]" level="application" />
76
+ <orderEntry type="library" scope="PROVIDED" name="rspec (v3.10.0, RVM: ruby-2.7.4) [gem]" level="application" />
77
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.10.1, RVM: ruby-2.7.4) [gem]" level="application" />
78
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.10.1, RVM: ruby-2.7.4) [gem]" level="application" />
79
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.10.2, RVM: ruby-2.7.4) [gem]" level="application" />
80
+ <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.10.2, RVM: ruby-2.7.4) [gem]" level="application" />
81
+ <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.91.1, RVM: ruby-2.7.4) [gem]" level="application" />
82
+ <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v0.8.0, RVM: ruby-2.7.4) [gem]" level="application" />
83
+ <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-2.7.4) [gem]" level="application" />
84
+ <orderEntry type="library" scope="PROVIDED" name="ruby_dep (v1.5.0, RVM: ruby-2.7.4) [gem]" level="application" />
85
+ <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.21.2, RVM: ruby-2.7.4) [gem]" level="application" />
86
+ <orderEntry type="library" scope="PROVIDED" name="simplecov-console (v0.9.1, RVM: ruby-2.7.4) [gem]" level="application" />
87
+ <orderEntry type="library" scope="PROVIDED" name="simplecov-html (v0.12.3, RVM: ruby-2.7.4) [gem]" level="application" />
88
+ <orderEntry type="library" scope="PROVIDED" name="simplecov-rcov (v0.2.3, RVM: ruby-2.7.4) [gem]" level="application" />
89
+ <orderEntry type="library" scope="PROVIDED" name="simplecov_json_formatter (v0.1.3, RVM: ruby-2.7.4) [gem]" level="application" />
90
+ <orderEntry type="library" scope="PROVIDED" name="sprockets (v4.0.2, RVM: ruby-2.7.4) [gem]" level="application" />
91
+ <orderEntry type="library" scope="PROVIDED" name="sprockets-rails (v3.2.2, RVM: ruby-2.7.4) [gem]" level="application" />
92
+ <orderEntry type="library" scope="PROVIDED" name="terminal-table (v3.0.1, RVM: ruby-2.7.4) [gem]" level="application" />
93
+ <orderEntry type="library" scope="PROVIDED" name="thor (v1.1.0, RVM: ruby-2.7.4) [gem]" level="application" />
94
+ <orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.4, RVM: ruby-2.7.4) [gem]" level="application" />
95
+ <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.7.0, RVM: ruby-2.7.4) [gem]" level="application" />
96
+ <orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.5, RVM: ruby-2.7.4) [gem]" level="application" />
97
+ <orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, RVM: ruby-2.7.4) [gem]" level="application" />
98
+ <orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.4.2, RVM: ruby-2.7.4) [gem]" level="application" />
99
99
  </component>
100
100
  <component name="RakeTasksCache">
101
101
  <option name="myRootTask">
data/.rubocop.yml CHANGED
@@ -4,6 +4,7 @@ AllCops:
4
4
  - 'bin/**/*'
5
5
  - 'node_modules/**/*'
6
6
  - 'artifacts/**/*'
7
+ - 'vendor/**/*'
7
8
 
8
9
  # Allow one line around block body (Layout/EmptyLines will still disallow two or more)
9
10
  Layout/EmptyLinesAroundBlockBody:
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.2.1 (2021-08-19)
2
+
3
+ - Recursively log error cause
4
+
1
5
  # 0.2.0 (2021-08-18)
2
6
 
3
7
  - Rename to `BerkeleyLibrary::Logging` in prep for move to GitHub
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # The MIT License (MIT)
2
2
 
3
- Copyright © 2020 The Regents of the University of California
3
+ Copyright © 2021 The Regents of the University of California
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a
6
6
  copy of this software and associated documentation files (the “Software”),
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # BerkeleyLibrary::Logging
2
2
 
3
- [![Build Status](https://travis-ci.com/BerkeleyLibrary/logging.svg?branch=main)](https://travis-ci.com/github/BerkeleyLibrary/logging/)
3
+ [![Build Status](https://github.com/BerkeleyLibrary/logging/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/BerkeleyLibrary/logging/actions/workflows/build.yml)
4
4
  [![Gem Version](https://img.shields.io/gem/v/berkeley_library-logging.svg)](https://github.com/BerkeleyLibrary/logging/releases)
5
5
 
6
6
  Opinionated logging for UCB Library IT Rails applications.
@@ -10,7 +10,7 @@ module BerkeleyLibrary
10
10
  end
11
11
 
12
12
  def new_readable_formatter
13
- Ougai::Formatters::Readable.new
13
+ Readable.new
14
14
  end
15
15
 
16
16
  def lograge_formatter
@@ -28,8 +28,53 @@ module BerkeleyLibrary
28
28
  # ------------------------------------------------------------
29
29
  # Private helper classes
30
30
 
31
+ module ErrorCauseSerializer
32
+ def serialize_exc(ex, serialized = Set.new)
33
+ super(ex).tap do |result|
34
+ next unless (cause = ex.cause)
35
+ next if (serialized << ex).include?(cause) # prevent circular references
36
+
37
+ result[:cause] = serialize_exc(cause, serialized)
38
+ end
39
+ end
40
+ end
41
+
42
+ private_constant :ErrorCauseSerializer
43
+
44
+ class Readable < Ougai::Formatters::Readable
45
+ include ErrorCauseSerializer
46
+
47
+ protected
48
+
49
+ def create_err_str(data)
50
+ return unless (err_hash = data.delete(:err))
51
+
52
+ format_err(err_hash)
53
+ end
54
+
55
+ private
56
+
57
+ def format_err(err_hash)
58
+ " #{err_hash[:name]} (#{err_hash[:message]}):".tap do |msg|
59
+ next unless (stack = err_hash[:stack])
60
+
61
+ msg << "\n"
62
+ msg << (' ' * @trace_indent)
63
+ msg << stack
64
+
65
+ next unless (cause_hash = err_hash[:cause])
66
+
67
+ msg << "\n Caused by: "
68
+ msg << format_err(cause_hash).strip
69
+ end
70
+ end
71
+
72
+ end
73
+ private_constant :Readable
74
+
31
75
  class Bunyan < Ougai::Formatters::Bunyan
32
76
  include Ougai::Logging::Severity
77
+ include ErrorCauseSerializer
33
78
 
34
79
  def _call(severity, time, progname, data)
35
80
  original_data = Formatters.ensure_hash(data)
@@ -7,7 +7,7 @@ module BerkeleyLibrary
7
7
  SUMMARY = 'Opinionated Ruby/Rails logging for UC Berkeley Library'.freeze
8
8
  DESCRIPTION = 'A gem providing shared logging code for UC Berkeley Library gems and Rails applications'.freeze
9
9
  LICENSE = 'MIT'.freeze
10
- VERSION = '0.2.0'.freeze
10
+ VERSION = '0.2.1'.freeze
11
11
  HOMEPAGE = 'https://github.com/BerkeleyLibrary/logging'.freeze
12
12
 
13
13
  private_class_method :new
@@ -9,7 +9,13 @@ module BerkeleyLibrary
9
9
  # rubocop:disable Lint/ConstantDefinitionInBlock
10
10
  before(:each) do
11
11
  @out = StringIO.new
12
- class ::TestError < StandardError; end
12
+ class ::TestError < StandardError
13
+ attr_writer :cause
14
+
15
+ def cause
16
+ @cause || super
17
+ end
18
+ end
13
19
  end
14
20
  # rubocop:enable Lint/ConstantDefinitionInBlock
15
21
 
@@ -18,6 +24,23 @@ module BerkeleyLibrary
18
24
  end
19
25
 
20
26
  describe :new_json_logger do
27
+
28
+ # TODO: rewrite this as a matcher
29
+ # rubocop:disable Metrics/AbcSize
30
+ def assert_serialized_error(err_json, err)
31
+ expect(err_json).to be_a(Hash)
32
+ expect(err_json['name']).to eq(TestError.name)
33
+ expect(err_json['message']).to eq(err.message)
34
+
35
+ err_stack = err_json['stack']
36
+ backtrace = err.backtrace
37
+ expect(backtrace).not_to be_nil # just to be sure
38
+ backtrace.each do |line|
39
+ expect(err_stack).to include(line)
40
+ end
41
+ end
42
+ # rubocop:enable Metrics/AbcSize
43
+
21
44
  it 'supports tagged logging' do
22
45
  logger = Loggers.new_json_logger(out)
23
46
  logger = ActiveSupport::TaggedLogging.new(logger)
@@ -38,25 +61,62 @@ module BerkeleyLibrary
38
61
  begin
39
62
  raise TestError, msg
40
63
  rescue TestError => e
41
- ex = e
42
64
  Loggers.new_json_logger(out).error(e)
43
65
  end
44
66
 
45
67
  logged_json = JSON.parse(out.string)
46
- expect(logged_json['msg']).to eq(msg)
68
+ expect(logged_json['msg']).to eq(e.message)
69
+ assert_serialized_error(logged_json['err'], e)
70
+ end
71
+
72
+ # rubocop:disable Naming/RescuedExceptionsVariableName
73
+ it 'includes the error cause' do
74
+ msg_outer = 'Help I am trapped in the outer part of a unit test'
75
+ msg_inner = 'Help I am trapped in the inner part of a unit test'
76
+
77
+ begin
78
+ raise TestError, msg_inner
79
+ rescue TestError => ex_inner
80
+ begin
81
+ raise TestError, msg_outer
82
+ rescue TestError => ex_outer
83
+ Loggers.new_json_logger(out).error(ex_outer)
84
+ end
85
+ end
86
+
87
+ expect(ex_outer.cause).to eq(ex_inner) # just to be sure
88
+
89
+ logged_json = JSON.parse(out.string)
90
+ expect(logged_json['msg']).to eq(ex_outer.message)
91
+
47
92
  err_json = logged_json['err']
48
- expect(err_json).to be_a(Hash)
49
- expect(err_json['name']).to eq(TestError.name)
50
- expect(err_json['message']).to eq(msg)
93
+ assert_serialized_error(err_json, ex_outer)
51
94
 
52
- err_stack = err_json['stack']
53
- backtrace = ex.backtrace
54
- expect(backtrace).not_to be_nil # just to be sure
55
- backtrace.each do |line|
56
- expect(err_stack).to include(line)
95
+ cause_json = err_json['cause']
96
+ expect(cause_json).not_to be_nil
97
+ assert_serialized_error(cause_json, ex_inner)
98
+ end
99
+ end
100
+ # rubocop:enable Naming/RescuedExceptionsVariableName
101
+
102
+ # rubocop:disable Naming/RescuedExceptionsVariableName
103
+ it 'handles pathological circular references' do
104
+ msg_outer = 'Help I am trapped in the outer part of a unit test'
105
+ msg_inner = 'Help I am trapped in the inner part of a unit test'
106
+
107
+ begin
108
+ raise TestError, msg_inner
109
+ rescue TestError => ex_inner
110
+ begin
111
+ raise TestError, msg_outer
112
+ rescue TestError => ex_outer
113
+ ex_inner.cause = ex_outer
57
114
  end
58
115
  end
116
+
117
+ expect { Loggers.new_json_logger(out).error(ex_outer) }.not_to raise_error(SystemStackError)
59
118
  end
119
+ # rubocop:enable Naming/RescuedExceptionsVariableName
60
120
 
61
121
  describe :default_logger do
62
122
  it 'returns a readable $stdout logger' do
@@ -132,7 +192,7 @@ module BerkeleyLibrary
132
192
  end
133
193
  end
134
194
 
135
- it 'logs an error with cause and backtrace' do
195
+ it 'logs an error with backtrace' do
136
196
  msg_txt = 'message text'
137
197
  ex_msg = 'Help I am trapped in a unit test'
138
198
 
@@ -154,6 +214,37 @@ module BerkeleyLibrary
154
214
  end
155
215
  end
156
216
 
217
+ # rubocop:disable Naming/RescuedExceptionsVariableName
218
+ it 'includes the error cause' do
219
+ msg_outer = 'Help I am trapped in the outer part of a unit test'
220
+ msg_inner = 'Help I am trapped in the inner part of a unit test'
221
+
222
+ begin
223
+ raise TestError, msg_inner
224
+ rescue TestError => ex_inner
225
+ begin
226
+ raise TestError, msg_outer
227
+ rescue TestError => ex_outer
228
+ Loggers.new_readable_logger(out).error(ex_outer)
229
+ end
230
+ end
231
+
232
+ expect(ex_outer.cause).to eq(ex_inner) # just to be sure
233
+
234
+ logged_txt = out.string
235
+ [ex_inner, ex_outer].each do |ex|
236
+ msg = ex.message
237
+ expect(logged_txt).to include(msg)
238
+
239
+ backtrace = ex.backtrace
240
+ expect(backtrace).not_to be_nil # just to be sure
241
+ backtrace.each do |line|
242
+ expect(logged_txt).to include(line)
243
+ end
244
+ end
245
+ end
246
+ # rubocop:enable Naming/RescuedExceptionsVariableName
247
+
157
248
  end
158
249
 
159
250
  describe 'messages with data and no text' do
@@ -274,5 +365,6 @@ module BerkeleyLibrary
274
365
  end
275
366
  end
276
367
  end
368
+
277
369
  end
278
370
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkeley_library-logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Moles
@@ -275,6 +275,7 @@ executables: []
275
275
  extensions: []
276
276
  extra_rdoc_files: []
277
277
  files:
278
+ - ".github/workflows/build.yml"
278
279
  - ".gitignore"
279
280
  - ".idea/inspectionProfiles/Project_Default.xml"
280
281
  - ".idea/logging.iml"
@@ -283,11 +284,9 @@ files:
283
284
  - ".rubocop.yml"
284
285
  - ".ruby-version"
285
286
  - ".simplecov"
286
- - ".travis.yml"
287
287
  - CHANGES.md
288
288
  - Dockerfile
289
289
  - Gemfile
290
- - Jenkinsfile
291
290
  - LICENSE.md
292
291
  - README.md
293
292
  - Rakefile
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- language: ruby
2
-
3
- os:
4
- - linux
5
- - osx
6
-
7
- rvm:
8
- - 2.7
9
- - ruby-head
data/Jenkinsfile DELETED
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env groovy
2
-
3
- dockerComposePipeline(
4
- commands: [
5
- 'bundle exec rake coverage',
6
- 'bundle exec rake rubocop',
7
- 'bundle exec rake bundle:audit',
8
- 'bundle exec rake gem'
9
- ],
10
- artifacts: [
11
- junit: 'artifacts/rspec/**/*.xml',
12
- html : [
13
- 'Code Coverage': 'artifacts/rcov',
14
- 'RuboCop' : 'artifacts/rubocop'
15
- ],
16
- raw : [
17
- 'artifacts/**/*.gem',
18
- 'artifacts/**/*.json'
19
- ]
20
- ]
21
- )