log_analyzer 0.3.1 → 0.3.3
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/Gemfile +2 -1
- data/Gemfile.lock +17 -12
- data/README.md +7 -0
- data/bin/log_analyzer +6 -0
- data/lib/log_analyzer/analyzer.rb +19 -1
- data/lib/log_analyzer/version.rb +1 -1
- data/lib/log_analyzer.rb +1 -0
- data/log_analyzer.gemspec +1 -0
- metadata +20 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fb38bc538db35eb6cc492e246ff6f91789dbcfc36c10f280ce98ae3c3ace1a1b
|
4
|
+
data.tar.gz: 66d394742f76c8e31d8e4625cf4c4fdb5152f1539d606674aec5e8680a14f6f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7a4e275c9758308f1e8a37c1a418680ebb949972f170a548003801934b107f649d318d9fe6a7b8b7562d3f6b6742748856e8e0f94037f68782feba51893a0f0
|
7
|
+
data.tar.gz: 12bef142bab0e3a0b2154b6efacf9b449474286b823ba3e0c7db0d94c4df5370f3934c18dae52ee94e4fdd6c67af4cb2f4432df60f099ff25d48eb8962174ce9
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
log_analyzer (0.3.
|
4
|
+
log_analyzer (0.3.3)
|
5
5
|
colorize
|
6
6
|
prawn
|
7
7
|
prawn-table
|
8
8
|
rake
|
9
|
+
spreadsheet
|
9
10
|
terminal-table
|
10
11
|
thor
|
11
12
|
|
@@ -18,16 +19,16 @@ GEM
|
|
18
19
|
docile (1.1.5)
|
19
20
|
json (2.0.3)
|
20
21
|
method_source (0.9.0)
|
21
|
-
pdf-core (0.
|
22
|
-
prawn (2.
|
23
|
-
pdf-core (~> 0.
|
24
|
-
ttfunk (~> 1.
|
22
|
+
pdf-core (0.9.0)
|
23
|
+
prawn (2.4.0)
|
24
|
+
pdf-core (~> 0.9.0)
|
25
|
+
ttfunk (~> 1.7)
|
25
26
|
prawn-table (0.2.2)
|
26
27
|
prawn (>= 1.3.0, < 3.0.0)
|
27
28
|
pry (0.11.3)
|
28
29
|
coderay (~> 1.1.0)
|
29
30
|
method_source (~> 0.9.0)
|
30
|
-
rake (
|
31
|
+
rake (13.0.6)
|
31
32
|
rspec (3.7.0)
|
32
33
|
rspec-core (~> 3.7.0)
|
33
34
|
rspec-expectations (~> 3.7.0)
|
@@ -41,16 +42,19 @@ GEM
|
|
41
42
|
diff-lcs (>= 1.2.0, < 2.0)
|
42
43
|
rspec-support (~> 3.7.0)
|
43
44
|
rspec-support (3.7.1)
|
45
|
+
ruby-ole (1.2.12.2)
|
44
46
|
simplecov (0.13.0)
|
45
47
|
docile (~> 1.1.0)
|
46
48
|
json (>= 1.8, < 3)
|
47
49
|
simplecov-html (~> 0.10.0)
|
48
50
|
simplecov-html (0.10.0)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
51
|
+
spreadsheet (1.2.6)
|
52
|
+
ruby-ole (>= 1.0)
|
53
|
+
terminal-table (3.0.2)
|
54
|
+
unicode-display_width (>= 1.1.1, < 3)
|
55
|
+
thor (1.2.1)
|
56
|
+
ttfunk (1.7.0)
|
57
|
+
unicode-display_width (2.4.2)
|
54
58
|
|
55
59
|
PLATFORMS
|
56
60
|
ruby
|
@@ -61,6 +65,7 @@ DEPENDENCIES
|
|
61
65
|
pry
|
62
66
|
rspec
|
63
67
|
simplecov
|
68
|
+
spreadsheet
|
64
69
|
|
65
70
|
BUNDLED WITH
|
66
|
-
|
71
|
+
2.3.7
|
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
[](https://travis-ci.org/igorkasyanchuk/log_analyzer)
|
2
|
+
[](https://www.railsjazz.com)
|
3
|
+
[](https://www.patreon.com/igorkasyanchuk)
|
2
4
|
|
3
5
|
# LogAnalyzer
|
4
6
|
|
@@ -49,11 +51,13 @@ Samples:
|
|
49
51
|
* `log_analyzer production.log -pdf`
|
50
52
|
* `log_analyzer -f log/production.log -s name`
|
51
53
|
* `log_analyzer -f log/production.log -s time -f v`
|
54
|
+
* `log_analyzer -f log/production.log -s rtime -f v`
|
52
55
|
* `log_analyzer -file log/production.log -sort count`
|
53
56
|
* `log_analyzer -file log/production.log -sort count -filter view`
|
54
57
|
* `log_analyzer -file log/production.log -sort count -filter partial`
|
55
58
|
* `log_analyzer -file log/production.log -sort time -filter p`
|
56
59
|
* `log_analyzer development.log -csv -s time -f p`
|
60
|
+
* `log_analyzer development.log -xls -s time -f p`
|
57
61
|
* `log_analyzer log/production.log -pdf --short`
|
58
62
|
* `log_analyzer -file log/production.log --short`
|
59
63
|
* `log_analyzer --help`
|
@@ -80,6 +84,7 @@ Big thank you to all our contributors:
|
|
80
84
|
* [@ritaritual](https://github.com/ritaritual)
|
81
85
|
* [@y-yagi](https://github.com/y-yagi)
|
82
86
|
* [@RafaelHashimoto](https://github.com/RafaelHashimoto)
|
87
|
+
* [@Quentinchampenois](https://github.com/Quentinchampenois)
|
83
88
|
|
84
89
|
## TODO
|
85
90
|
|
@@ -92,3 +97,5 @@ Big thank you to all our contributors:
|
|
92
97
|
|
93
98
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
94
99
|
|
100
|
+
[<img src="https://github.com/igorkasyanchuk/rails_time_travel/blob/main/docs/more_gems.png?raw=true"
|
101
|
+
/>](https://www.railsjazz.com/?utm_source=github&utm_medium=bottom&utm_campaign=log_analyzer)
|
data/bin/log_analyzer
CHANGED
@@ -35,6 +35,10 @@ parser = OptionParser.new do |opts|
|
|
35
35
|
options[:format] = 'csv'
|
36
36
|
end
|
37
37
|
|
38
|
+
opts.on('-xls', '--output=xls', 'Export to .xls') do |v|
|
39
|
+
options[:format] = 'xls'
|
40
|
+
end
|
41
|
+
|
38
42
|
opts.on('-h', '--help', 'Displays Help') do
|
39
43
|
puts opts
|
40
44
|
exit
|
@@ -65,6 +69,8 @@ if options[:file] && options[:sort]
|
|
65
69
|
analyzer.to_pdf(LogAnalyzer::Utils.report_name('pdf'), short: options[:short])
|
66
70
|
when 'csv'
|
67
71
|
analyzer.to_csv(LogAnalyzer::Utils.report_name('csv'), short: options[:short])
|
72
|
+
when 'xls'
|
73
|
+
analyzer.to_xls(LogAnalyzer::Utils.report_name('xls'), short: options[:short])
|
68
74
|
else
|
69
75
|
analyzer.visualize(short: options[:short])
|
70
76
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module LogAnalyzer
|
2
|
-
|
2
|
+
|
3
3
|
class Analyzer
|
4
4
|
DEFAULT_TABLE_WIDTH = 120 # width
|
5
5
|
CONTENT_LENGTH = (0..DEFAULT_TABLE_WIDTH - 20).freeze
|
@@ -36,6 +36,8 @@ module LogAnalyzer
|
|
36
36
|
@stats = @stats.sort{|a, b| a[0] <=> b[0] }
|
37
37
|
when :time
|
38
38
|
@stats = @stats.sort{|a, b| a[1].avg <=> b[1].avg }
|
39
|
+
when :rtime
|
40
|
+
@stats = @stats.sort{|a, b| b[1].avg <=> a[1].avg }
|
39
41
|
when :count
|
40
42
|
@stats = @stats.sort{|a, b| a[1].count <=> b[1].count }
|
41
43
|
end
|
@@ -98,6 +100,21 @@ module LogAnalyzer
|
|
98
100
|
end
|
99
101
|
end
|
100
102
|
|
103
|
+
def to_xls(out_filename, short: false)
|
104
|
+
xls = Spreadsheet::Workbook.new
|
105
|
+
xls.create_worksheet
|
106
|
+
#XLS header
|
107
|
+
xls.worksheet(0).insert_row(0, HEADER)
|
108
|
+
#XLS content
|
109
|
+
stats.each do |path, stat|
|
110
|
+
xls.worksheet(0).insert_row(
|
111
|
+
xls.worksheet(0).last_row_index + 1,
|
112
|
+
xls_format_row(path, stat, short)
|
113
|
+
)
|
114
|
+
end
|
115
|
+
xls.write("#{Dir.pwd}/#{out_filename}")
|
116
|
+
end
|
117
|
+
|
101
118
|
private
|
102
119
|
|
103
120
|
def console_row(path, stat, short)
|
@@ -124,6 +141,7 @@ module LogAnalyzer
|
|
124
141
|
|
125
142
|
alias :pdf_row :simple_row
|
126
143
|
alias :csv_format_row :simple_row
|
144
|
+
alias :xls_format_row :simple_row
|
127
145
|
|
128
146
|
def new_table
|
129
147
|
Terminal::Table.new(headings: HEADER, width: DEFAULT_TABLE_WIDTH)
|
data/lib/log_analyzer/version.rb
CHANGED
data/lib/log_analyzer.rb
CHANGED
data/log_analyzer.gemspec
CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_dependency "colorize"
|
29
29
|
spec.add_dependency "prawn"
|
30
30
|
spec.add_dependency "prawn-table"
|
31
|
+
spec.add_dependency "spreadsheet"
|
31
32
|
|
32
33
|
spec.add_development_dependency "bundler", "> 1.14"
|
33
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_analyzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Kasyanchuk
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: spreadsheet
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,7 +190,7 @@ homepage: https://github.com/igorkasyanchuk
|
|
176
190
|
licenses:
|
177
191
|
- MIT
|
178
192
|
metadata: {}
|
179
|
-
post_install_message:
|
193
|
+
post_install_message:
|
180
194
|
rdoc_options: []
|
181
195
|
require_paths:
|
182
196
|
- lib
|
@@ -191,9 +205,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
205
|
- !ruby/object:Gem::Version
|
192
206
|
version: '0'
|
193
207
|
requirements: []
|
194
|
-
|
195
|
-
|
196
|
-
signing_key:
|
208
|
+
rubygems_version: 3.2.3
|
209
|
+
signing_key:
|
197
210
|
specification_version: 4
|
198
211
|
summary: log_analyzer gem is created to get statistics about your views rendering
|
199
212
|
performance.
|