logtail-rails 0.1.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.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +144 -0
  3. data/.gitignore +23 -0
  4. data/.rspec +3 -0
  5. data/Gemfile +3 -0
  6. data/LICENSE.md +13 -0
  7. data/README.md +10 -0
  8. data/Rakefile +6 -0
  9. data/gemfiles/rails-3.0.gemfile +8 -0
  10. data/gemfiles/rails-3.1.gemfile +8 -0
  11. data/gemfiles/rails-3.2.gemfile +8 -0
  12. data/gemfiles/rails-4.0.gemfile +12 -0
  13. data/gemfiles/rails-4.1.gemfile +12 -0
  14. data/gemfiles/rails-4.2.gemfile +12 -0
  15. data/gemfiles/rails-5.0.gemfile +12 -0
  16. data/gemfiles/rails-5.1.gemfile +12 -0
  17. data/gemfiles/rails-5.2.gemfile +12 -0
  18. data/gemfiles/rails-6.0.gemfile +12 -0
  19. data/gemfiles/rails-6.1.gemfile +12 -0
  20. data/gemfiles/rails-edge.gemfile +10 -0
  21. data/lib/logtail-rails.rb +64 -0
  22. data/lib/logtail-rails/action_controller.rb +17 -0
  23. data/lib/logtail-rails/action_controller/log_subscriber.rb +25 -0
  24. data/lib/logtail-rails/action_controller/log_subscriber/logtail_log_subscriber.rb +46 -0
  25. data/lib/logtail-rails/action_dispatch.rb +20 -0
  26. data/lib/logtail-rails/action_dispatch/debug_exceptions.rb +51 -0
  27. data/lib/logtail-rails/action_view.rb +17 -0
  28. data/lib/logtail-rails/action_view/log_subscriber.rb +25 -0
  29. data/lib/logtail-rails/action_view/log_subscriber/logtail_log_subscriber.rb +84 -0
  30. data/lib/logtail-rails/active_record.rb +17 -0
  31. data/lib/logtail-rails/active_record/log_subscriber.rb +20 -0
  32. data/lib/logtail-rails/active_record/log_subscriber/logtail_log_subscriber.rb +52 -0
  33. data/lib/logtail-rails/active_support_log_subscriber.rb +39 -0
  34. data/lib/logtail-rails/config.rb +12 -0
  35. data/lib/logtail-rails/config/action_controller.rb +29 -0
  36. data/lib/logtail-rails/config/action_view.rb +29 -0
  37. data/lib/logtail-rails/config/active_record.rb +29 -0
  38. data/lib/logtail-rails/error_event.rb +62 -0
  39. data/lib/logtail-rails/logger.rb +20 -0
  40. data/lib/logtail-rails/overrides.rb +12 -0
  41. data/lib/logtail-rails/overrides/active_support_3_tagged_logging.rb +111 -0
  42. data/lib/logtail-rails/overrides/active_support_buffered_logger.rb +22 -0
  43. data/lib/logtail-rails/overrides/active_support_tagged_logging.rb +66 -0
  44. data/lib/logtail-rails/overrides/lograge.rb +18 -0
  45. data/lib/logtail-rails/overrides/rails_stdout_logging.rb +20 -0
  46. data/lib/logtail-rails/rack_logger.rb +59 -0
  47. data/lib/logtail-rails/railtie.rb +27 -0
  48. data/lib/logtail-rails/session_context.rb +37 -0
  49. data/lib/logtail-rails/version.rb +7 -0
  50. data/logtail-rails.gemspec +60 -0
  51. metadata +263 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: bb92429187fc50aa6622a0cc2cccf5d177819012e62a2fb952a8dd587ee2fb55
4
+ data.tar.gz: 4afe93789eac96a479ecfa54ca99752936bf2387bd17f0699254fa8ecef62cc0
5
+ SHA512:
6
+ metadata.gz: c5be83553b8850cb86ae68858862ec1d5055a7fd8d07f310764e8da66fe0752a1deaa7d4459c04436b238351e9e4a9fd801ef93dcd751d4d7c35a2ff8d131b52
7
+ data.tar.gz: 483a2803fd7a1d1fe9bb9a4f078161ac4236439dd2caa376859a94eeb0a7b996e035a620d96e3b98a9e003209b912bc0e6812da6f7f0698bbb54ed59cf9638e7
@@ -0,0 +1,144 @@
1
+ name: build
2
+
3
+ on: [ push, pull_request ]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-20.04
8
+
9
+ strategy:
10
+ fail-fast: false
11
+
12
+ matrix:
13
+ ruby-version:
14
+ - 3.0.0
15
+ - 2.7.2
16
+ - 2.6.6
17
+ - 2.5.8
18
+ - 2.4.10
19
+ - 2.3.8
20
+ - 2.2.10
21
+ - jruby-9.2.14.0
22
+ - truffleruby-21.0.0
23
+ gemfile:
24
+ - rails-edge
25
+ - rails-6.1
26
+ - rails-6.0
27
+ - rails-5.2
28
+ - rails-5.1
29
+ - rails-5.0
30
+ exclude:
31
+ - gemfile: rails-edge
32
+ ruby-version: 2.6.6
33
+ - gemfile: rails-edge
34
+ ruby-version: 2.5.8
35
+ - gemfile: rails-edge
36
+ ruby-version: 2.4.10
37
+ - gemfile: rails-edge
38
+ ruby-version: 2.3.8
39
+ - gemfile: rails-edge
40
+ ruby-version: 2.2.10
41
+ - gemfile: rails-edge
42
+ ruby-version: jruby-9.2.14.0
43
+ - gemfile: rails-edge
44
+ ruby-version: truffleruby-21.0.0
45
+
46
+ - ruby-version: 3.0.0
47
+ gemfile: rails-5.2
48
+ - ruby-version: 3.0.0
49
+ gemfile: rails-5.1
50
+ - ruby-version: 3.0.0
51
+ gemfile: rails-5.0
52
+
53
+ - gemfile: rails-6.1
54
+ ruby-version: 2.4.10
55
+ - gemfile: rails-6.1
56
+ ruby-version: 2.3.8
57
+ - gemfile: rails-6.1
58
+ ruby-version: 2.2.10
59
+ - gemfile: rails-6.1
60
+ ruby-version: 2.2.10
61
+
62
+ - gemfile: rails-6.0
63
+ ruby-version: 2.4.10
64
+ - gemfile: rails-6.0
65
+ ruby-version: 2.3.8
66
+ - gemfile: rails-6.0
67
+ ruby-version: 2.2.10
68
+
69
+ - gemfile: rails-5.2
70
+ ruby-version: 2.2.10
71
+
72
+ env:
73
+ BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
74
+ RAILS_ENV: test
75
+
76
+ steps:
77
+ - uses: actions/checkout@v2
78
+
79
+ - name: Selected Gemfile
80
+ run: echo $BUNDLE_GEMFILE
81
+
82
+ - name: Set up Ruby ${{ matrix.ruby-version }}
83
+ uses: ruby/setup-ruby@v1
84
+ with:
85
+ ruby-version: ${{ matrix.ruby-version }}
86
+ bundler-cache: true
87
+
88
+ - name: Run tests
89
+ run: bundle exec rspec --format documentation
90
+
91
+
92
+ test_bundler_v1:
93
+ runs-on: ubuntu-20.04
94
+
95
+ strategy:
96
+ fail-fast: false
97
+
98
+ matrix:
99
+ ruby-version:
100
+ - 2.6.6
101
+ - 2.5.8
102
+ - 2.4.10
103
+ - 2.3.8
104
+ - 2.2.10
105
+ gemfile:
106
+ - rails-4.2
107
+ - rails-4.1
108
+ - rails-4.0
109
+ - rails-3.2
110
+
111
+ exclude:
112
+ - gemfile: rails-4.1
113
+ ruby-version: 2.6.6
114
+ - gemfile: rails-4.1
115
+ ruby-version: 2.5.8
116
+ - gemfile: rails-4.1
117
+ ruby-version: 2.4.10
118
+
119
+ - gemfile: rails-4.0
120
+ ruby-version: 2.6.6
121
+ - gemfile: rails-4.0
122
+ ruby-version: 2.5.8
123
+ - gemfile: rails-4.0
124
+ ruby-version: 2.4.10
125
+
126
+ env:
127
+ BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
128
+ RAILS_ENV: test
129
+
130
+ steps:
131
+ - uses: actions/checkout@v2
132
+
133
+ - name: Selected Gemfile
134
+ run: echo $BUNDLE_GEMFILE
135
+
136
+ - name: Set up Ruby ${{ matrix.ruby-version }}
137
+ uses: ruby/setup-ruby@v1
138
+ with:
139
+ bundler: 1.17
140
+ ruby-version: ${{ matrix.ruby-version }}
141
+ bundler-cache: true
142
+
143
+ - name: Run tests
144
+ run: bundle exec rspec --format documentation
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ /doc/
2
+ /pkg/
3
+ /spec/reports/
4
+ /tmp/
5
+
6
+ # rspec failure tracking
7
+ .rspec_status
8
+ .DS_Store
9
+ .rvmrc
10
+ .ruby-version
11
+ coverage
12
+ Gemfile.lock
13
+ *.swp
14
+ *.gem
15
+
16
+ gemfiles/*.lock
17
+
18
+ /.bundle
19
+ /.yardoc
20
+ /doc
21
+ /log
22
+ /tmp
23
+ /pkg
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/LICENSE.md ADDED
@@ -0,0 +1,13 @@
1
+ # License
2
+
3
+ Copyright (c) 2021, Logtail
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,
6
+ provided that the above copyright notice and this permission notice appear in all copies.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
9
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
11
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
12
+ THIS SOFTWARE.
13
+
data/README.md ADDED
@@ -0,0 +1,10 @@
1
+ # 🪵 Logtail Integration For Rails
2
+
3
+ [![ISC License](https://img.shields.io/badge/license-ISC-ff69b4.svg)](LICENSE.md)
4
+ [![Build Status](https://github.com/logtail/logtail-ruby-rails/workflows/build/badge.svg)](https://github.com/logtail/logtail-ruby-rails/actions?query=workflow%3Abuild)
5
+
6
+ This library integrates the [`logtail` Ruby library](https://github.com/logtail/logtail-ruby) with
7
+ the [rails](https://github.com/rails/rails) framework, turning your rails logs into rich structured events.
8
+
9
+ * **Sign-up: [https://logtail.com](https://logtail.com)**
10
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 3.0.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ gemspec :path => '../'
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 3.1.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ gemspec :path => '../'
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 3.2.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 4.0.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 4.1.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 4.2.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.0.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.1.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.2.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 6.0.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 6.1.0'
4
+
5
+ gem 'logtail-ruby'
6
+ gem 'logtail-rack'
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ gem 'mime-types', '2.6.2'
10
+ end
11
+
12
+ gemspec :path => '../'
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rack', git: 'https://github.com/rack/rack', branch: 'master'
4
+ gem 'arel', git: 'https://github.com/rails/arel', branch: 'master'
5
+ gem 'rails', git: 'https://github.com/rails/rails', branch: 'main'
6
+
7
+ gem 'logtail-ruby'
8
+ gem 'logtail-rack'
9
+
10
+ gemspec :path => '../'
@@ -0,0 +1,64 @@
1
+ require "logtail-rails/overrides"
2
+
3
+ require "logtail"
4
+ require "rails"
5
+ require "logtail-rails/active_support_log_subscriber"
6
+ require "logtail-rails/config"
7
+ require "logtail-rails/railtie"
8
+
9
+ require "logtail-rack/http_context"
10
+ require "logtail-rack/http_events"
11
+ require "logtail-rack/user_context"
12
+ require "logtail-rails/session_context"
13
+ require "logtail-rails/rack_logger"
14
+ require "logtail-rails/error_event"
15
+
16
+ require "logtail-rails/action_controller"
17
+ require "logtail-rails/action_dispatch"
18
+ require "logtail-rails/action_view"
19
+ require "logtail-rails/active_record"
20
+
21
+ require "logtail-rails/logger"
22
+
23
+ module Logtail
24
+ module Integrations
25
+ # Module for holding *all* Rails integrations. This module does *not*
26
+ # extend {Integration} because it's dependent on {Rack::HTTPEvents}. This
27
+ # module simply disables the default HTTP request logging.
28
+ module Rails
29
+ def self.enabled?
30
+ Logtail::Integrations::Rack::HTTPEvents.enabled?
31
+ end
32
+
33
+ def self.integrate!
34
+ return false if !enabled?
35
+
36
+ ActionController.integrate!
37
+ ActionDispatch.integrate!
38
+ ActionView.integrate!
39
+ ActiveRecord.integrate!
40
+ RackLogger.integrate!
41
+ end
42
+
43
+ def self.enabled=(value)
44
+ Logtail::Integrations::Rails::ErrorEvent.enabled = value
45
+ Logtail::Integrations::Rack::HTTPContext.enabled = value
46
+ Logtail::Integrations::Rack::HTTPEvents.enabled = value
47
+ Logtail::Integrations::Rack::UserContext.enabled = value
48
+ SessionContext.enabled = value
49
+
50
+ ActionController.enabled = value
51
+ ActionView.enabled = value
52
+ ActiveRecord.enabled = value
53
+ end
54
+
55
+ # All enabled middlewares. The order is relevant. Middlewares that set
56
+ # context are added first so that context is included in subsequent log lines.
57
+ def self.middlewares
58
+ @middlewares ||= [Logtail::Integrations::Rack::HTTPContext, SessionContext, Logtail::Integrations::Rack::UserContext,
59
+ Logtail::Integrations::Rack::HTTPEvents, Logtail::Integrations::Rails::ErrorEvent].select(&:enabled?)
60
+ end
61
+ end
62
+ end
63
+ end
64
+