rails_log_parser 0.0.20 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +95 -0
- data/README.md +7 -80
- data/lib/rails_log_parser/action.rb +24 -11
- data/lib/rails_log_parser/line.rb +3 -3
- data/lib/rails_log_parser/not_parseable_lines.rb +8 -2
- data/lib/rails_log_parser/parser.rb +7 -6
- data/lib/rails_log_parser.rb +3 -1
- metadata +14 -54
- data/.gitignore +0 -11
- data/.rspec +0 -3
- data/Gemfile +0 -9
- data/Gemfile.lock +0 -146
- data/Rakefile +0 -8
- data/rails_log_parser.gemspec +0 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dfd1e54a158c7a2cc3b5bd53a9fb5ac06cacdf382a29f880e909c635743d6308
|
|
4
|
+
data.tar.gz: b3d793c3521b0d876d171609f37e1221d0424021efec07449858ebb8857769c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e3fed27137397bdfe32fb495e6dac47bf80331ff2e8338d9783455f613ec8d4a1a82ea659859be2b6733582e7c06bca47c792767b361eec0b04900bf4fcb7cea
|
|
7
|
+
data.tar.gz: 060ef71dd6a770e743000b2858953d402eeaa2a887da5ea9e1a42b50418b0a805638d7853e4d6b5d627eae2b673e1d5dabc1c9517806947cb9e344df7b7882b6
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.0
|
|
4
|
+
|
|
5
|
+
* Drop `enumerize`, `json` and `rails` dependencies, only `activesupport` is required
|
|
6
|
+
* `Action#severity` and `Action#type` return symbols
|
|
7
|
+
* Require Ruby 3.2 and ActiveSupport 7.0 or newer
|
|
8
|
+
* Fix `NameError` on continuation lines of requests which started before the beginning of the log
|
|
9
|
+
* Fix crash on log lines with label `ANY` (`Logger#unknown`)
|
|
10
|
+
* Fix `summary(last_minutes:)` for actions without datetime
|
|
11
|
+
* Fix swallowed log lines containing `Starting job`
|
|
12
|
+
|
|
13
|
+
## 0.0.21
|
|
14
|
+
|
|
15
|
+
* Use `ignore_lines` on not parsable lines
|
|
16
|
+
|
|
17
|
+
## 0.0.20
|
|
18
|
+
|
|
19
|
+
* Add support for journald
|
|
20
|
+
|
|
21
|
+
## 0.0.19
|
|
22
|
+
|
|
23
|
+
* Ignore lines after ActiveJob lines
|
|
24
|
+
|
|
25
|
+
## 0.0.18
|
|
26
|
+
|
|
27
|
+
* Known exceptions given with maximum severity
|
|
28
|
+
|
|
29
|
+
## 0.0.17
|
|
30
|
+
|
|
31
|
+
* Adding `ActionDispatch::Http::MimeNegotiation::InvalidType` as known exceptions
|
|
32
|
+
* Update dependencies
|
|
33
|
+
|
|
34
|
+
## 0.0.16
|
|
35
|
+
|
|
36
|
+
* Remove heuristic
|
|
37
|
+
* Fix last action handling
|
|
38
|
+
|
|
39
|
+
## 0.0.15
|
|
40
|
+
|
|
41
|
+
* Filter lines by config file
|
|
42
|
+
|
|
43
|
+
## 0.0.14
|
|
44
|
+
|
|
45
|
+
* Better empty lines handling
|
|
46
|
+
|
|
47
|
+
## 0.0.13
|
|
48
|
+
|
|
49
|
+
* Better empty lines handling
|
|
50
|
+
|
|
51
|
+
## 0.0.12
|
|
52
|
+
|
|
53
|
+
* Adding `ActionController::UnknownFormat` as known exceptions
|
|
54
|
+
|
|
55
|
+
## 0.0.11
|
|
56
|
+
|
|
57
|
+
* Increase minimum requests value for heuristic
|
|
58
|
+
|
|
59
|
+
## 0.0.10
|
|
60
|
+
|
|
61
|
+
* Ignore periods with too few requests
|
|
62
|
+
|
|
63
|
+
## 0.0.9
|
|
64
|
+
|
|
65
|
+
* Message not parseable lines only once a day
|
|
66
|
+
* Delete old heuristic stat files automaticly
|
|
67
|
+
|
|
68
|
+
## 0.0.8
|
|
69
|
+
|
|
70
|
+
* Adding `ActionController::UnfilteredParameters` as known exceptions
|
|
71
|
+
* Adjust heuristic rate for better matching
|
|
72
|
+
|
|
73
|
+
## 0.0.7
|
|
74
|
+
|
|
75
|
+
* Remove empty lines on summary without report
|
|
76
|
+
|
|
77
|
+
## 0.0.6
|
|
78
|
+
|
|
79
|
+
* Adding heuristic to rate known exceptions
|
|
80
|
+
|
|
81
|
+
## 0.0.5
|
|
82
|
+
|
|
83
|
+
* Removing `URI::InvalidURIError` as known exceptions
|
|
84
|
+
|
|
85
|
+
## 0.0.4
|
|
86
|
+
|
|
87
|
+
* Handle stacktrace of fatals too
|
|
88
|
+
|
|
89
|
+
## 0.0.3
|
|
90
|
+
|
|
91
|
+
* Adding `URI::InvalidURIError` as known exceptions
|
|
92
|
+
|
|
93
|
+
## 0.0.2
|
|
94
|
+
|
|
95
|
+
* Adding `ActionController::InvalidAuthenticityToken` as known exceptions
|
data/README.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
This gem helps you to quick analyse your server logs without external monitor servers. Simple applications with a low number of requests cause only a low number of errors. So you can call a cronjob to analyse your logs periodly. If the summary is not empty your server will email you the result automaticly.
|
|
4
4
|
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
* Ruby 3.2 or newer
|
|
8
|
+
* ActiveSupport 7.0 or newer
|
|
9
|
+
|
|
5
10
|
## Installation
|
|
6
11
|
|
|
7
12
|
Add this line to your application's Gemfile:
|
|
@@ -30,7 +35,7 @@ Call the rake tasks in cronjobs:
|
|
|
30
35
|
|
|
31
36
|
```
|
|
32
37
|
LOG_PATH=/srv/rails/log/production.log
|
|
33
|
-
0,20,40 * * * * rake rails_log_parser:parse[22]
|
|
38
|
+
0,20,40 * * * * rake rails_log_parser:parse[22] # summary of the last 22 minutes
|
|
34
39
|
```
|
|
35
40
|
|
|
36
41
|
Or use it in your code:
|
|
@@ -65,85 +70,7 @@ end
|
|
|
65
70
|
|
|
66
71
|
## Changelog
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* Add support for journald
|
|
71
|
-
|
|
72
|
-
### 0.0.19
|
|
73
|
-
|
|
74
|
-
* Ignore lines after ActiveJob lines
|
|
75
|
-
|
|
76
|
-
### 0.0.18
|
|
77
|
-
|
|
78
|
-
* Known exceptions given with maximum severity
|
|
79
|
-
|
|
80
|
-
### 0.0.17
|
|
81
|
-
|
|
82
|
-
* Adding `ActionDispatch::Http::MimeNegotiation::InvalidType` as known exceptions
|
|
83
|
-
* Update dependencies
|
|
84
|
-
|
|
85
|
-
### 0.0.16
|
|
86
|
-
|
|
87
|
-
* Remove heuristic
|
|
88
|
-
* Fix last action handling
|
|
89
|
-
|
|
90
|
-
### 0.0.15
|
|
91
|
-
|
|
92
|
-
* Filter lines by config file
|
|
93
|
-
|
|
94
|
-
### 0.0.14
|
|
95
|
-
|
|
96
|
-
* Better empty lines handling
|
|
97
|
-
|
|
98
|
-
### 0.0.13
|
|
99
|
-
|
|
100
|
-
* Better empty lines handling
|
|
101
|
-
|
|
102
|
-
### 0.0.12
|
|
103
|
-
|
|
104
|
-
* Adding `ActionController::UnknownFormat` as known exceptions
|
|
105
|
-
|
|
106
|
-
### 0.0.11
|
|
107
|
-
|
|
108
|
-
* Increase minimum requests value for heuristic
|
|
109
|
-
|
|
110
|
-
### 0.0.10
|
|
111
|
-
|
|
112
|
-
* Ignore periods with too few requests
|
|
113
|
-
|
|
114
|
-
### 0.0.9
|
|
115
|
-
|
|
116
|
-
* Message not parseable lines only once a day
|
|
117
|
-
* Delete old heuristic stat files automaticly
|
|
118
|
-
|
|
119
|
-
### 0.0.8
|
|
120
|
-
|
|
121
|
-
* Adding `ActionController::UnfilteredParameters` as known exceptions
|
|
122
|
-
* Adjust heuristic rate for better matching
|
|
123
|
-
|
|
124
|
-
### 0.0.7
|
|
125
|
-
|
|
126
|
-
* Remove empty lines on summary without report
|
|
127
|
-
|
|
128
|
-
### 0.0.6
|
|
129
|
-
|
|
130
|
-
* Adding heuristic to rate known exceptions
|
|
131
|
-
|
|
132
|
-
### 0.0.5
|
|
133
|
-
|
|
134
|
-
* Removing `URI::InvalidURIError` as known exceptions
|
|
135
|
-
|
|
136
|
-
### 0.0.4
|
|
137
|
-
|
|
138
|
-
* Handle stacktrace of fatals too
|
|
139
|
-
|
|
140
|
-
### 0.0.3
|
|
141
|
-
|
|
142
|
-
* Adding `URI::InvalidURIError` as known exceptions
|
|
143
|
-
|
|
144
|
-
### 0.0.2
|
|
145
|
-
|
|
146
|
-
* Adding `ActionController::InvalidAuthenticityToken` as known exceptions
|
|
73
|
+
See [CHANGELOG.md](CHANGELOG.md).
|
|
147
74
|
|
|
148
75
|
## Contributing
|
|
149
76
|
|
|
@@ -15,13 +15,22 @@ class RailsLogParser::Action
|
|
|
15
15
|
'ActionDispatch::Http::MimeNegotiation::InvalidType' => :fatal,
|
|
16
16
|
}.freeze
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
TYPES = %i[request without_request delayed_job active_job].freeze
|
|
19
|
+
|
|
20
|
+
attr_reader :type, :severity, :datetime
|
|
21
|
+
|
|
22
|
+
SEVERITIES.each do |value|
|
|
23
|
+
define_method(:"#{value}?") { severity == value }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
TYPES.each do |value|
|
|
27
|
+
define_method(:"#{value}?") { type == value }
|
|
28
|
+
end
|
|
22
29
|
|
|
23
30
|
def initialize(type, id)
|
|
24
|
-
|
|
31
|
+
raise ArgumentError, "unknown type #{type.inspect}" unless TYPES.include?(type)
|
|
32
|
+
|
|
33
|
+
@type = type
|
|
25
34
|
@id = id
|
|
26
35
|
@messages = []
|
|
27
36
|
@stacktrace = []
|
|
@@ -29,22 +38,26 @@ class RailsLogParser::Action
|
|
|
29
38
|
|
|
30
39
|
def severity=(value)
|
|
31
40
|
value = value.downcase.to_sym
|
|
32
|
-
|
|
41
|
+
# Logger::UNKNOWN is written with the label ANY, it carries no severity we can rate
|
|
42
|
+
return unless SEVERITIES.include?(value)
|
|
43
|
+
return unless severity.nil? || SEVERITIES.index(severity) < SEVERITIES.index(value)
|
|
33
44
|
|
|
34
|
-
|
|
45
|
+
@severity = value
|
|
35
46
|
@headline = nil
|
|
36
47
|
end
|
|
37
48
|
|
|
38
49
|
def known_exception?(key = nil)
|
|
39
|
-
severity_index = SEVERITIES.index(severity
|
|
50
|
+
severity_index = SEVERITIES.index(severity)
|
|
40
51
|
@messages.any? do |message|
|
|
41
|
-
KNOWN_EXCEPTIONS.any?
|
|
52
|
+
KNOWN_EXCEPTIONS.any? do |e, s|
|
|
53
|
+
message.include?(e) && severity_index <= SEVERITIES.index(s) && (key.nil? || key == e)
|
|
54
|
+
end
|
|
42
55
|
end
|
|
43
56
|
end
|
|
44
57
|
|
|
45
58
|
def ignore?
|
|
46
59
|
@messages.any? do |message|
|
|
47
|
-
RailsLogParser.ignore_lines.any? {|ignore| message.match?(ignore) }
|
|
60
|
+
RailsLogParser.ignore_lines.any? { |ignore| message.match?(ignore) }
|
|
48
61
|
end
|
|
49
62
|
end
|
|
50
63
|
|
|
@@ -57,7 +70,7 @@ class RailsLogParser::Action
|
|
|
57
70
|
end
|
|
58
71
|
|
|
59
72
|
def after?(datetime)
|
|
60
|
-
@datetime > datetime
|
|
73
|
+
@datetime.present? && @datetime > datetime
|
|
61
74
|
end
|
|
62
75
|
|
|
63
76
|
def add_message(value)
|
|
@@ -18,7 +18,7 @@ class RailsLogParser::Line
|
|
|
18
18
|
\A(?<severity_id>[DIWEFU]),\s # I,
|
|
19
19
|
\[(?<datetime>[^\]]+)\s\#(?<pid>\d+)\]\s+ # [2021-11-26T13:11:01.255168 #10158]
|
|
20
20
|
(?<severity_label>[A-Z]+)\s+--\s+[^:]*:\s+ # INFO -- :
|
|
21
|
-
\[(?<id>[a-f0-9
|
|
21
|
+
\[(?<id>[a-f0-9-]{36})\]\s* # [b42b65ab-7985-4bc2-a5b5-1fb23e6ad940]
|
|
22
22
|
\z/x)
|
|
23
23
|
if match
|
|
24
24
|
parser.empty_line(match)
|
|
@@ -30,7 +30,7 @@ class RailsLogParser::Line
|
|
|
30
30
|
\A(?<severity_id>[DIWEFU]),\s # I,
|
|
31
31
|
\[(?<datetime>[^\]]+)\s\#(?<pid>\d+)\]\s+ # [2021-11-26T13:11:01.255168 #10158]
|
|
32
32
|
(?<severity_label>[A-Z]+)\s+--\s+[^:]*:\s+ # INFO -- :
|
|
33
|
-
\[(?<id>[a-f0-9
|
|
33
|
+
\[(?<id>[a-f0-9-]{36})\]\s # [b42b65ab-7985-4bc2-a5b5-1fb23e6ad940]
|
|
34
34
|
(?<message>.*) # Processing by Public::Controller
|
|
35
35
|
\z/x)
|
|
36
36
|
if match
|
|
@@ -73,7 +73,7 @@ class RailsLogParser::Line
|
|
|
73
73
|
(?<severity_label>[A-Z]+)\s+--\s+[^:]*:\s # INFO -- :
|
|
74
74
|
(?<datetime2>[^\s]+)\s # 2021-11-26T13:51:30+0000:
|
|
75
75
|
\[Worker[^\]]+\]\s # [Worker(delayed_job host:production pid:10411)]
|
|
76
|
-
(?:\d+\sjobs\sprocessed
|
|
76
|
+
(?:\d+\sjobs\sprocessed|Starting\sjob) # 19 jobs processed
|
|
77
77
|
(?:.*) # at 2.8816
|
|
78
78
|
\z/x)
|
|
79
79
|
return if match
|
|
@@ -12,13 +12,13 @@ class RailsLogParser::NotParseableLines
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def push(line)
|
|
15
|
-
@lines.push(line) unless
|
|
15
|
+
@lines.push(line) unless ignore?(line)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def save
|
|
19
19
|
@stats[Date.today.to_s] = today_lines + lines
|
|
20
20
|
|
|
21
|
-
last_7_days = (0..6).map { |i|
|
|
21
|
+
last_7_days = (0..6).map { |i| Date.today - i }.map(&:to_s)
|
|
22
22
|
@stats.each_key do |key|
|
|
23
23
|
@stats.delete(key) unless last_7_days.include?(key)
|
|
24
24
|
end
|
|
@@ -31,6 +31,12 @@ class RailsLogParser::NotParseableLines
|
|
|
31
31
|
@stats[Date.today.to_s] || []
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
+
def ignore?(line)
|
|
35
|
+
return true if today_lines.include?(line)
|
|
36
|
+
|
|
37
|
+
RailsLogParser.ignore_lines.any? { |ignore| line.match?(ignore) }
|
|
38
|
+
end
|
|
39
|
+
|
|
34
40
|
def load_file
|
|
35
41
|
@stats = JSON.parse(File.read(@path))
|
|
36
42
|
@stats ||= {}
|
|
@@ -25,11 +25,11 @@ class RailsLogParser::Parser
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def from_journalctl(unit:, since: nil)
|
|
28
|
-
cmd = [
|
|
28
|
+
cmd = ['journalctl', '-u', unit, '-o', 'cat']
|
|
29
29
|
|
|
30
|
-
cmd += [
|
|
30
|
+
cmd += ['--since', since] if since
|
|
31
31
|
|
|
32
|
-
IO.popen(cmd, err: [
|
|
32
|
+
IO.popen(cmd, err: %i[child out]) do |io|
|
|
33
33
|
from_io(io)
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -38,14 +38,13 @@ class RailsLogParser::Parser
|
|
|
38
38
|
attr_reader :not_parseable_lines, :last_action
|
|
39
39
|
|
|
40
40
|
def initialize
|
|
41
|
-
config_file = File.join(Dir.pwd,'config/rails_log_parser.rb')
|
|
41
|
+
config_file = File.join(Dir.pwd, 'config/rails_log_parser.rb')
|
|
42
42
|
require config_file if File.file?(config_file)
|
|
43
43
|
|
|
44
44
|
@actions = {}
|
|
45
45
|
@not_parseable_lines = RailsLogParser::NotParseableLines.new
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
|
|
49
48
|
def summary(last_minutes: nil)
|
|
50
49
|
relevant = actions
|
|
51
50
|
if last_minutes.present?
|
|
@@ -113,7 +112,9 @@ class RailsLogParser::Parser
|
|
|
113
112
|
end
|
|
114
113
|
|
|
115
114
|
def add_message(params)
|
|
116
|
-
|
|
115
|
+
# continuation of a request which started before the beginning of the log
|
|
116
|
+
return if @actions[params['id']].nil?
|
|
117
|
+
|
|
117
118
|
@actions[params['id']].add_message(params['message'])
|
|
118
119
|
end
|
|
119
120
|
end
|
data/lib/rails_log_parser.rb
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require '
|
|
3
|
+
require 'active_support'
|
|
4
4
|
require 'active_support/core_ext/module/attribute_accessors'
|
|
5
|
+
require 'active_support/core_ext/object/blank'
|
|
6
|
+
require 'active_support/core_ext/numeric/time'
|
|
5
7
|
|
|
6
8
|
module RailsLogParser
|
|
7
9
|
mattr_accessor :ignore_lines, default: []
|
metadata
CHANGED
|
@@ -1,71 +1,35 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails_log_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Georg Limbach
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: activesupport
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '2.4'
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '2.4'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: json
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.0'
|
|
34
|
-
type: :runtime
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
16
|
requirements:
|
|
38
17
|
- - ">="
|
|
39
18
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
41
|
-
-
|
|
42
|
-
name: rails
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
19
|
+
version: '7.0'
|
|
20
|
+
- - "<"
|
|
46
21
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
22
|
+
version: '9'
|
|
48
23
|
type: :runtime
|
|
49
24
|
prerelease: false
|
|
50
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
26
|
requirements:
|
|
52
27
|
- - ">="
|
|
53
28
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
55
|
-
-
|
|
56
|
-
name: rspec
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - ">="
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '3.0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - ">="
|
|
29
|
+
version: '7.0'
|
|
30
|
+
- - "<"
|
|
67
31
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
32
|
+
version: '9'
|
|
69
33
|
description: If you want to get an email with errors and fatal log lines you can use
|
|
70
34
|
this gem.
|
|
71
35
|
email:
|
|
@@ -74,13 +38,9 @@ executables: []
|
|
|
74
38
|
extensions: []
|
|
75
39
|
extra_rdoc_files: []
|
|
76
40
|
files:
|
|
77
|
-
-
|
|
78
|
-
- ".rspec"
|
|
79
|
-
- Gemfile
|
|
80
|
-
- Gemfile.lock
|
|
41
|
+
- CHANGELOG.md
|
|
81
42
|
- LICENSE.txt
|
|
82
43
|
- README.md
|
|
83
|
-
- Rakefile
|
|
84
44
|
- lib/rails_log_parser.rb
|
|
85
45
|
- lib/rails_log_parser/action.rb
|
|
86
46
|
- lib/rails_log_parser/line.rb
|
|
@@ -88,13 +48,13 @@ files:
|
|
|
88
48
|
- lib/rails_log_parser/parser.rb
|
|
89
49
|
- lib/rails_log_parser/railtie.rb
|
|
90
50
|
- lib/rails_log_parser/tasks.rb
|
|
91
|
-
- rails_log_parser.gemspec
|
|
92
51
|
homepage: https://github.com/Lichtbit/rails_log_parser
|
|
93
52
|
licenses:
|
|
94
53
|
- MIT
|
|
95
54
|
metadata:
|
|
96
|
-
homepage_uri: https://github.com/Lichtbit/rails_log_parser
|
|
97
55
|
source_code_uri: https://github.com/Lichtbit/rails_log_parser
|
|
56
|
+
changelog_uri: https://github.com/Lichtbit/rails_log_parser/blob/master/CHANGELOG.md
|
|
57
|
+
rubygems_mfa_required: 'true'
|
|
98
58
|
post_install_message:
|
|
99
59
|
rdoc_options: []
|
|
100
60
|
require_paths:
|
|
@@ -103,14 +63,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
103
63
|
requirements:
|
|
104
64
|
- - ">="
|
|
105
65
|
- !ruby/object:Gem::Version
|
|
106
|
-
version:
|
|
66
|
+
version: '3.2'
|
|
107
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
68
|
requirements:
|
|
109
69
|
- - ">="
|
|
110
70
|
- !ruby/object:Gem::Version
|
|
111
71
|
version: '0'
|
|
112
72
|
requirements: []
|
|
113
|
-
rubygems_version: 3.
|
|
73
|
+
rubygems_version: 3.4.20
|
|
114
74
|
signing_key:
|
|
115
75
|
specification_version: 4
|
|
116
76
|
summary: Simple and fast analysing of default rails logs
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
rails_log_parser (0.0.16)
|
|
5
|
-
enumerize (~> 2.4)
|
|
6
|
-
json (>= 2.0)
|
|
7
|
-
rails (>= 2.1)
|
|
8
|
-
|
|
9
|
-
GEM
|
|
10
|
-
remote: https://rubygems.org/
|
|
11
|
-
specs:
|
|
12
|
-
actioncable (5.2.5)
|
|
13
|
-
actionpack (= 5.2.5)
|
|
14
|
-
nio4r (~> 2.0)
|
|
15
|
-
websocket-driver (>= 0.6.1)
|
|
16
|
-
actionmailer (5.2.5)
|
|
17
|
-
actionpack (= 5.2.5)
|
|
18
|
-
actionview (= 5.2.5)
|
|
19
|
-
activejob (= 5.2.5)
|
|
20
|
-
mail (~> 2.5, >= 2.5.4)
|
|
21
|
-
rails-dom-testing (~> 2.0)
|
|
22
|
-
actionpack (5.2.5)
|
|
23
|
-
actionview (= 5.2.5)
|
|
24
|
-
activesupport (= 5.2.5)
|
|
25
|
-
rack (~> 2.0, >= 2.0.8)
|
|
26
|
-
rack-test (>= 0.6.3)
|
|
27
|
-
rails-dom-testing (~> 2.0)
|
|
28
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
29
|
-
actionview (5.2.5)
|
|
30
|
-
activesupport (= 5.2.5)
|
|
31
|
-
builder (~> 3.1)
|
|
32
|
-
erubi (~> 1.4)
|
|
33
|
-
rails-dom-testing (~> 2.0)
|
|
34
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
35
|
-
activejob (5.2.5)
|
|
36
|
-
activesupport (= 5.2.5)
|
|
37
|
-
globalid (>= 0.3.6)
|
|
38
|
-
activemodel (5.2.5)
|
|
39
|
-
activesupport (= 5.2.5)
|
|
40
|
-
activerecord (5.2.5)
|
|
41
|
-
activemodel (= 5.2.5)
|
|
42
|
-
activesupport (= 5.2.5)
|
|
43
|
-
arel (>= 9.0)
|
|
44
|
-
activestorage (5.2.5)
|
|
45
|
-
actionpack (= 5.2.5)
|
|
46
|
-
activerecord (= 5.2.5)
|
|
47
|
-
marcel (~> 1.0.0)
|
|
48
|
-
activesupport (5.2.5)
|
|
49
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
50
|
-
i18n (>= 0.7, < 2)
|
|
51
|
-
minitest (~> 5.1)
|
|
52
|
-
tzinfo (~> 1.1)
|
|
53
|
-
arel (9.0.0)
|
|
54
|
-
builder (3.2.4)
|
|
55
|
-
concurrent-ruby (1.2.2)
|
|
56
|
-
crass (1.0.6)
|
|
57
|
-
diff-lcs (1.4.4)
|
|
58
|
-
enumerize (2.5.0)
|
|
59
|
-
activesupport (>= 3.2)
|
|
60
|
-
erubi (1.10.0)
|
|
61
|
-
globalid (0.4.2)
|
|
62
|
-
activesupport (>= 4.2.0)
|
|
63
|
-
i18n (1.12.0)
|
|
64
|
-
concurrent-ruby (~> 1.0)
|
|
65
|
-
json (2.6.3)
|
|
66
|
-
loofah (2.9.1)
|
|
67
|
-
crass (~> 1.0.2)
|
|
68
|
-
nokogiri (>= 1.5.9)
|
|
69
|
-
mail (2.7.1)
|
|
70
|
-
mini_mime (>= 0.1.1)
|
|
71
|
-
marcel (1.0.1)
|
|
72
|
-
method_source (1.0.0)
|
|
73
|
-
mini_mime (1.1.0)
|
|
74
|
-
mini_portile2 (2.8.5)
|
|
75
|
-
minitest (5.18.0)
|
|
76
|
-
nio4r (2.5.7)
|
|
77
|
-
nokogiri (1.16.0)
|
|
78
|
-
mini_portile2 (~> 2.8.2)
|
|
79
|
-
racc (~> 1.4)
|
|
80
|
-
racc (1.7.3)
|
|
81
|
-
rack (2.2.3)
|
|
82
|
-
rack-test (1.1.0)
|
|
83
|
-
rack (>= 1.0, < 3)
|
|
84
|
-
rails (5.2.5)
|
|
85
|
-
actioncable (= 5.2.5)
|
|
86
|
-
actionmailer (= 5.2.5)
|
|
87
|
-
actionpack (= 5.2.5)
|
|
88
|
-
actionview (= 5.2.5)
|
|
89
|
-
activejob (= 5.2.5)
|
|
90
|
-
activemodel (= 5.2.5)
|
|
91
|
-
activerecord (= 5.2.5)
|
|
92
|
-
activestorage (= 5.2.5)
|
|
93
|
-
activesupport (= 5.2.5)
|
|
94
|
-
bundler (>= 1.3.0)
|
|
95
|
-
railties (= 5.2.5)
|
|
96
|
-
sprockets-rails (>= 2.0.0)
|
|
97
|
-
rails-dom-testing (2.0.3)
|
|
98
|
-
activesupport (>= 4.2.0)
|
|
99
|
-
nokogiri (>= 1.6)
|
|
100
|
-
rails-html-sanitizer (1.3.0)
|
|
101
|
-
loofah (~> 2.3)
|
|
102
|
-
railties (5.2.5)
|
|
103
|
-
actionpack (= 5.2.5)
|
|
104
|
-
activesupport (= 5.2.5)
|
|
105
|
-
method_source
|
|
106
|
-
rake (>= 0.8.7)
|
|
107
|
-
thor (>= 0.19.0, < 2.0)
|
|
108
|
-
rake (12.3.3)
|
|
109
|
-
rspec (3.10.0)
|
|
110
|
-
rspec-core (~> 3.10.0)
|
|
111
|
-
rspec-expectations (~> 3.10.0)
|
|
112
|
-
rspec-mocks (~> 3.10.0)
|
|
113
|
-
rspec-core (3.10.1)
|
|
114
|
-
rspec-support (~> 3.10.0)
|
|
115
|
-
rspec-expectations (3.10.1)
|
|
116
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
117
|
-
rspec-support (~> 3.10.0)
|
|
118
|
-
rspec-mocks (3.10.2)
|
|
119
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
120
|
-
rspec-support (~> 3.10.0)
|
|
121
|
-
rspec-support (3.10.3)
|
|
122
|
-
sprockets (4.0.2)
|
|
123
|
-
concurrent-ruby (~> 1.0)
|
|
124
|
-
rack (> 1, < 3)
|
|
125
|
-
sprockets-rails (3.2.2)
|
|
126
|
-
actionpack (>= 4.0)
|
|
127
|
-
activesupport (>= 4.0)
|
|
128
|
-
sprockets (>= 3.0.0)
|
|
129
|
-
thor (1.1.0)
|
|
130
|
-
thread_safe (0.3.6)
|
|
131
|
-
tzinfo (1.2.9)
|
|
132
|
-
thread_safe (~> 0.1)
|
|
133
|
-
websocket-driver (0.7.3)
|
|
134
|
-
websocket-extensions (>= 0.1.0)
|
|
135
|
-
websocket-extensions (0.1.5)
|
|
136
|
-
|
|
137
|
-
PLATFORMS
|
|
138
|
-
ruby
|
|
139
|
-
|
|
140
|
-
DEPENDENCIES
|
|
141
|
-
rails_log_parser!
|
|
142
|
-
rake (~> 12.0)
|
|
143
|
-
rspec (~> 3.0)
|
|
144
|
-
|
|
145
|
-
BUNDLED WITH
|
|
146
|
-
2.3.26
|
data/Rakefile
DELETED
data/rails_log_parser.gemspec
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
Gem::Specification.new do |spec|
|
|
4
|
-
spec.name = 'rails_log_parser'
|
|
5
|
-
spec.version = '0.0.20'
|
|
6
|
-
spec.authors = ['Georg Limbach']
|
|
7
|
-
spec.email = ['georg.limbach@lichtbit.com']
|
|
8
|
-
|
|
9
|
-
spec.summary = 'Simple and fast analysing of default rails logs'
|
|
10
|
-
spec.description = 'If you want to get an email with errors and fatal log lines you can use this gem.'
|
|
11
|
-
spec.homepage = 'https://github.com/Lichtbit/rails_log_parser'
|
|
12
|
-
spec.license = 'MIT'
|
|
13
|
-
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
|
14
|
-
|
|
15
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
|
16
|
-
spec.metadata['source_code_uri'] = 'https://github.com/Lichtbit/rails_log_parser'
|
|
17
|
-
|
|
18
|
-
# Specify which files should be added to the gem when it is released.
|
|
19
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
20
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
21
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
22
|
-
end
|
|
23
|
-
spec.require_paths = ['lib']
|
|
24
|
-
|
|
25
|
-
spec.add_dependency 'enumerize', '~> 2.4'
|
|
26
|
-
spec.add_dependency 'json', '>= 2.0'
|
|
27
|
-
spec.add_dependency 'rails', '>= 2.1'
|
|
28
|
-
spec.add_development_dependency 'rspec', '>= 3.0'
|
|
29
|
-
end
|