log_sense 1.9.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.org +15 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +15 -15
- data/README.org +169 -116
- data/exe/log_sense +2 -1
- data/lib/log_sense/aggregator.rb +3 -2
- data/lib/log_sense/apache_report_shaper.rb +19 -260
- data/lib/log_sense/emitter.rb +2 -0
- data/lib/log_sense/rails_aggregator.rb +12 -2
- data/lib/log_sense/rails_report_shaper.rb +25 -198
- data/lib/log_sense/report_shaper.rb +364 -1
- data/lib/log_sense/templates/_apache_theme.css +35 -0
- data/lib/log_sense/templates/_navigation.html.erb +2 -2
- data/lib/log_sense/templates/_rails_theme.css +36 -0
- data/lib/log_sense/templates/_stylesheet.css +64 -44
- data/lib/log_sense/templates/report_html.erb +14 -6
- data/lib/log_sense/templates/world.svg +977 -0
- data/lib/log_sense/version.rb +1 -1
- data/log_sense.gemspec +9 -9
- data/screenshots/combined_log-screenshot.png +0 -0
- data/screenshots/rails-screenshot.png +0 -0
- data/todo.org +309 -0
- metadata +38 -35
- data/lib/log_sense/templates/_rails.css.erb +0 -20
- data/screenshots/apache-screenshot.png +0 -0
data/lib/log_sense/version.rb
CHANGED
data/log_sense.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.authors = ["Adolfo Villafiorita"]
|
7
7
|
spec.email = ["adolfo@shair.tech"]
|
8
8
|
|
9
|
-
spec.summary = %q{Generate analytics for
|
10
|
-
spec.description = %q{Generate analytics in HTML, txt, and SQLite format for
|
9
|
+
spec.summary = %q{Generate analytics for Rails and Apache/Nginx log file.}
|
10
|
+
spec.description = %q{Generate analytics in HTML, txt, and SQLite format for Rails and Apache/Nginx log files.}
|
11
11
|
spec.homepage = "https://github.com/shair-tech/log_sense/"
|
12
12
|
spec.license = "MIT"
|
13
13
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.9")
|
@@ -27,12 +27,12 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency "browser"
|
31
|
-
spec.add_dependency "ipaddr"
|
32
|
-
spec.add_dependency "iso_country_codes"
|
33
|
-
spec.add_dependency "sqlite3"
|
34
|
-
spec.add_dependency "terminal-table"
|
30
|
+
spec.add_dependency "browser", "~> 5.3.0"
|
31
|
+
spec.add_dependency "ipaddr", "~> 1.2.0"
|
32
|
+
spec.add_dependency "iso_country_codes", "~> 0.7.0"
|
33
|
+
spec.add_dependency "sqlite3", "~> 2.0.0"
|
34
|
+
spec.add_dependency "terminal-table", "~> 3.0.0"
|
35
35
|
|
36
|
-
spec.add_development_dependency "debug"
|
37
|
-
spec.add_development_dependency "minitest"
|
36
|
+
spec.add_development_dependency "debug", "~> 1.9.0"
|
37
|
+
spec.add_development_dependency "minitest", "~> 5.24.0"
|
38
38
|
end
|
Binary file
|
Binary file
|
data/todo.org
ADDED
@@ -0,0 +1,309 @@
|
|
1
|
+
#+TITLE: Todo
|
2
|
+
|
3
|
+
* Todo (2024-08-01)
|
4
|
+
|
5
|
+
** T Move geolocation to aggregator, so that we can perform queries more efficiently :refactoring:
|
6
|
+
** T Filter on dates :feature:
|
7
|
+
** T Visits/Hits :feature:
|
8
|
+
- Visits and hits now includes also requests for other resources and 404.
|
9
|
+
We should probably limit to the visits to actual pages, to remove noise
|
10
|
+
and errors.
|
11
|
+
** T error on data
|
12
|
+
- The data reported by echarts on the number of hits of a controller
|
13
|
+
differs from the data shown in the table?
|
14
|
+
** T Sidebar foreground color in new apache report
|
15
|
+
** T Dark style
|
16
|
+
** T Remove dependency from Zurb Foundation (native css grid instead)
|
17
|
+
** T refactor report specifications in their own class :refactoring:
|
18
|
+
** T Add lines not parsed to the report :feature:
|
19
|
+
** T Using an empty log as input raises an error :feature:
|
20
|
+
kriosprime:sample_logs $ log_sense -f apache -i empty_log.log -t html
|
21
|
+
(erb):3:in `block in render': undefined method `strftime' for nil:NilClass (NoMethodError)
|
22
|
+
from /opt/rubies/ruby-2.6.9/lib/ruby/2.6.0/erb.rb:901:in `eval'
|
23
|
+
from /opt/rubies/ruby-2.6.9/lib/ruby/2.6.0/erb.rb:901:in `result'
|
24
|
+
from /home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/lib/log_sense/emitter.rb:40:in `render'
|
25
|
+
from (erb):210:in `emit'
|
26
|
+
from /opt/rubies/ruby-2.6.9/lib/ruby/2.6.0/erb.rb:901:in `eval'
|
27
|
+
from /opt/rubies/ruby-2.6.9/lib/ruby/2.6.0/erb.rb:901:in `result'
|
28
|
+
from /home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/lib/log_sense/emitter.rb:24:in `emit'
|
29
|
+
from /home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/exe/log_sense:66:in `<top (required)>'
|
30
|
+
from /home/adolfo/.gem/ruby/2.6.9/bin/log_sense:23:in `load'
|
31
|
+
from /home/adolfo/.gem/ruby/2.6.9/bin/log_sense:23:in `<main>'
|
32
|
+
** T Choosing the wrong output format raises an error :feature:
|
33
|
+
kriosprime:sample_logs $ log_sense -t apache -i empty_log.log -o html
|
34
|
+
/home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/lib/log_sense/emitter.rb:22:in `read': No such file or directory @ rb_sysopen - /home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/lib/log_sense/templates/apache.apache.erb (Errno::ENOENT)
|
35
|
+
from /home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/lib/log_sense/emitter.rb:22:in `emit'
|
36
|
+
from /home/adolfo/.gem/ruby/2.6.9/gems/log_sense-1.3.4/exe/log_sense:66:in `<top (required)>'
|
37
|
+
from /home/adolfo/.gem/ruby/2.6.9/bin/log_sense:23:in `load'
|
38
|
+
from /home/adolfo/.gem/ruby/2.6.9/bin/log_sense:23:in `<main>'
|
39
|
+
|
40
|
+
** T Architecture :refactoring:
|
41
|
+
The architecture and the structure of the code is far from being nice,
|
42
|
+
for historical reason and for a bunch of small differences existing
|
43
|
+
between the input and the outputs to be generated. This usually ends
|
44
|
+
up with modifications to the code that have to be replicated in
|
45
|
+
different parts of the code and in interferences.
|
46
|
+
|
47
|
+
Among the points I would like to address:
|
48
|
+
|
49
|
+
- [ ] The execution pipeline in the main script has a few exceptions to
|
50
|
+
manage SQLite reading/dumping and ufw report. A linear structure
|
51
|
+
would be a lot nicer.
|
52
|
+
|
53
|
+
- [ ] Two different classes are defined for steps 1, 2, and 4, to manage,
|
54
|
+
respectively, Apache and Rails logs. These classes inherit from a common
|
55
|
+
ancestor (e.g. ApacheParser and RailsParser both inherit from Parser), but
|
56
|
+
there is still too little code shared. A nicer approach would be that of
|
57
|
+
identifying a common DB structure and unify the pipeline up to (or
|
58
|
+
including) the generation of reports. There are a bunch of small different
|
59
|
+
things to highlight in reports, which still make this difficult. For
|
60
|
+
instance, the country report for Apache reports size of TX data, which is
|
61
|
+
not available for Rail reports.
|
62
|
+
|
63
|
+
- [ ] Geolocation could become a lot more efficient if performed in
|
64
|
+
SQLite, rather than in Ruby
|
65
|
+
|
66
|
+
- [ ] The distinction between Aggregation, Shaping, and Emission is a too
|
67
|
+
fine-grained and it would be nice to be able to cleanly remove one
|
68
|
+
of the steps.
|
69
|
+
|
70
|
+
|
71
|
+
* Archive :archive:
|
72
|
+
|
73
|
+
** D Revisions to command line syntax
|
74
|
+
:PERTIES:
|
75
|
+
:HIVE_TIME: 2024-08-01 Thu 08:18
|
76
|
+
:HIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
77
|
+
:HIVE_OLPATH: Check
|
78
|
+
:HIVE_CATEGORY: todo
|
79
|
+
:HIVE_TODO: DONE
|
80
|
+
::
|
81
|
+
:BOOK:
|
82
|
+
-ate "DONE" from "TODO" [2022-03-07 Mon 21:24]
|
83
|
+
::
|
84
|
+
-low multiple files in input
|
85
|
+
-low input from stdin
|
86
|
+
|
87
|
+
** D Invalid IP
|
88
|
+
:PERTIES:
|
89
|
+
:HIVE_TIME: 2024-08-01 Thu 08:18
|
90
|
+
:HIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
91
|
+
:HIVE_OLPATH: Check
|
92
|
+
:HIVE_CATEGORY: todo
|
93
|
+
:HIVE_TODO: DONE
|
94
|
+
::
|
95
|
+
:BOOK:
|
96
|
+
-ate "DONE" from "TODO" [2022-03-08 Tue 12:50]
|
97
|
+
::
|
98
|
+
Iking log_sense on bringfood.org...done!
|
99
|
+
Iking log_sense on ewaste.education...done!
|
100
|
+
Iking log_sense on gasapp.fbk.eu...done!
|
101
|
+
Iking log_sense on replay-eit...done!
|
102
|
+
Iking log_sense on shair.tech...done!
|
103
|
+
Iking log_sense on w3c.it...done!
|
104
|
+
Iking log_sense on bringfood.org...Traceback (most recent call last):
|
105
|
+
12: from /home/octopus/.gem/ruby/2.7.5/bin/log_sense:23:in `<main>'
|
106
|
+
11: from /home/octopus/.gem/ruby/2.7.5/bin/log_sense:23:in `load'
|
107
|
+
10: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/exe/log_sense:50:in `<top (required)>'
|
108
|
+
9: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:53:in `geolocate'
|
109
|
+
8: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:53:in `each'
|
110
|
+
7: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:54:in `block in geolocate'
|
111
|
+
6: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:39:in `locate_ip'
|
112
|
+
5: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:39:in `new'
|
113
|
+
4: from /opt/rubies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:580:in `initialize'
|
114
|
+
3: from /opt/rubies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:620:in `in_addr'
|
115
|
+
2: from /opt/rubies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:620:in `inject'
|
116
|
+
1: from /opt/rubies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:620:in `each'
|
117
|
+
/optbies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:621:in `block in in_addr': invalid address (IPAddr::InvalidAddressError)
|
118
|
+
9: from /home/octopus/.gem/ruby/2.7.5/bin/log_sense:23:in `<main>'
|
119
|
+
8: from /home/octopus/.gem/ruby/2.7.5/bin/log_sense:23:in `load'
|
120
|
+
7: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/exe/log_sense:50:in `<top (required)>'
|
121
|
+
6: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:53:in `geolocate'
|
122
|
+
5: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:53:in `each'
|
123
|
+
4: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:54:in `block in geolocate'
|
124
|
+
3: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:39:in `locate_ip'
|
125
|
+
2: from /home/octopus/.gem/ruby/2.7.5/gems/log_sense-1.4.0/lib/log_sense/ip_locator.rb:39:in `new'
|
126
|
+
1: from /opt/rubies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:557:in `initialize'
|
127
|
+
/optbies/ruby-2.7.5/lib/ruby/2.7.0/ipaddr.rb:598:in `rescue in initialize': invalid address: 437.176.99.144 (IPAddr::InvalidAddressError)
|
128
|
+
|
129
|
+
** D HTML menu should be built from @reports
|
130
|
+
:PERTIES:
|
131
|
+
:HIVE_TIME: 2024-08-01 Thu 08:18
|
132
|
+
:HIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
133
|
+
:HIVE_OLPATH: Check
|
134
|
+
:HIVE_CATEGORY: todo
|
135
|
+
:HIVE_TODO: DONE
|
136
|
+
::
|
137
|
+
:BOOK:
|
138
|
+
-ate "DONE" from "TODO" [2022-03-08 Tue 12:50]
|
139
|
+
::
|
140
|
+
|
141
|
+
** D Summary Table: Unique visits per day should be an integer (it is presented as a float, instead)
|
142
|
+
:PERTIES:
|
143
|
+
:HIVE_TIME: 2024-08-01 Thu 08:18
|
144
|
+
:HIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
145
|
+
:HIVE_OLPATH: Check
|
146
|
+
:HIVE_CATEGORY: todo
|
147
|
+
:HIVE_TODO: DONE
|
148
|
+
::
|
149
|
+
:BOOK:
|
150
|
+
-ate "DONE" from "TODO" [2022-03-08 Tue 12:51]
|
151
|
+
::
|
152
|
+
|
153
|
+
** D Streaks, add total entries, total HTML, total other resources
|
154
|
+
:PERTIES:
|
155
|
+
:HIVE_TIME: 2024-08-01 Thu 08:18
|
156
|
+
:HIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
157
|
+
:HIVE_OLPATH: Check
|
158
|
+
:HIVE_CATEGORY: todo
|
159
|
+
:HIVE_TODO: DONE
|
160
|
+
::
|
161
|
+
:BOOK:
|
162
|
+
-ate "DONE" from "TODO" [2022-03-08 Tue 18:02]
|
163
|
+
::
|
164
|
+
|
165
|
+
** D GeoIP: Add a task to automatically update IP Geolocation Database
|
166
|
+
:PERTIES:
|
167
|
+
:HIVE_TIME: 2024-08-01 Thu 08:18
|
168
|
+
:HIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
169
|
+
:HIVE_OLPATH: Check
|
170
|
+
:HIVE_CATEGORY: todo
|
171
|
+
:HIVE_TODO: DONE
|
172
|
+
::
|
173
|
+
:BOOK:
|
174
|
+
-ate "DONE" from "TODO" [2022-03-08 Tue 18:02]
|
175
|
+
::
|
176
|
+
|
177
|
+
** D Remove dependency from Zurb Icons (used only for the hamburger)
|
178
|
+
:PROPERTIES:
|
179
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:18
|
180
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
181
|
+
:ARCHIVE_OLPATH: Check
|
182
|
+
:ARCHIVE_CATEGORY: todo
|
183
|
+
:ARCHIVE_TODO: DONE
|
184
|
+
:END:
|
185
|
+
:LOGBOOK:
|
186
|
+
- State "DONE" from "TODO" [2022-03-08 Tue 23:03]
|
187
|
+
:END:
|
188
|
+
|
189
|
+
** REJECTED add remaining reports (summary, performance, log structure) to the list defined in emitter
|
190
|
+
:PROPERTIES:
|
191
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:18
|
192
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
193
|
+
:ARCHIVE_OLPATH: Check
|
194
|
+
:ARCHIVE_CATEGORY: todo
|
195
|
+
:ARCHIVE_TODO: REJECTED
|
196
|
+
:END:
|
197
|
+
:LOGBOOK:
|
198
|
+
- State "REJECTED" from "TODO" [2022-03-09 Wed 08:59] \\
|
199
|
+
- these reports use different formats (stats-list) and are not easily standardized
|
200
|
+
:END:
|
201
|
+
|
202
|
+
** D Check Apache Report working
|
203
|
+
:PROPERTIES:
|
204
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:19
|
205
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
206
|
+
:ARCHIVE_OLPATH: Check
|
207
|
+
:ARCHIVE_CATEGORY: todo
|
208
|
+
:ARCHIVE_TODO: D
|
209
|
+
:END:
|
210
|
+
|
211
|
+
** D Restore Streaks in both reports
|
212
|
+
:PROPERTIES:
|
213
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:19
|
214
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
215
|
+
:ARCHIVE_OLPATH: Check
|
216
|
+
:ARCHIVE_CATEGORY: todo
|
217
|
+
:ARCHIVE_TODO: D
|
218
|
+
:END:
|
219
|
+
|
220
|
+
** D Restore Country table
|
221
|
+
:PROPERTIES:
|
222
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:19
|
223
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
224
|
+
:ARCHIVE_OLPATH: Check
|
225
|
+
:ARCHIVE_CATEGORY: todo
|
226
|
+
:ARCHIVE_TODO: D
|
227
|
+
:END:
|
228
|
+
|
229
|
+
** D Add UFW Report
|
230
|
+
:PROPERTIES:
|
231
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:19
|
232
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
233
|
+
:ARCHIVE_OLPATH: Check
|
234
|
+
:ARCHIVE_CATEGORY: todo
|
235
|
+
:ARCHIVE_TODO: D
|
236
|
+
:END:
|
237
|
+
|
238
|
+
** D Add IP by Time in Apache Report
|
239
|
+
:PROPERTIES:
|
240
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:21
|
241
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
242
|
+
:ARCHIVE_OLPATH: Check
|
243
|
+
:ARCHIVE_CATEGORY: todo
|
244
|
+
:ARCHIVE_TODO: D
|
245
|
+
:END:
|
246
|
+
|
247
|
+
** D Performance and Command Line invocation appear twice in the navigation menu
|
248
|
+
:PROPERTIES:
|
249
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:21
|
250
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
251
|
+
:ARCHIVE_OLPATH: Check
|
252
|
+
:ARCHIVE_CATEGORY: todo
|
253
|
+
:ARCHIVE_TODO: D
|
254
|
+
:END:
|
255
|
+
|
256
|
+
** DUPLICATE night and light themes
|
257
|
+
:PROPERTIES:
|
258
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:21
|
259
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
260
|
+
:ARCHIVE_OLPATH: Check
|
261
|
+
:ARCHIVE_CATEGORY: todo
|
262
|
+
:ARCHIVE_TODO: DUPLICATE
|
263
|
+
:END:
|
264
|
+
|
265
|
+
** REJECTED off-canvas does work as expected (older version was a lot better)
|
266
|
+
:PROPERTIES:
|
267
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:21
|
268
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
269
|
+
:ARCHIVE_OLPATH: Check
|
270
|
+
:ARCHIVE_CATEGORY: todo
|
271
|
+
:ARCHIVE_TODO: REJECTED
|
272
|
+
:END:
|
273
|
+
(it re-centers when showing right cells)
|
274
|
+
|
275
|
+
** REJECTED put together apache and rails txt reports (same partial, they are basically the same)
|
276
|
+
:PROPERTIES:
|
277
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:22
|
278
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
279
|
+
:ARCHIVE_OLPATH: Check
|
280
|
+
:ARCHIVE_CATEGORY: todo
|
281
|
+
:ARCHIVE_TODO: REJECTED
|
282
|
+
:END:
|
283
|
+
|
284
|
+
** REJECTED put together apache and rails html reports (same partial, they are basically the same)
|
285
|
+
:PROPERTIES:
|
286
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:22
|
287
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
288
|
+
:ARCHIVE_OLPATH: Check
|
289
|
+
:ARCHIVE_CATEGORY: todo
|
290
|
+
:ARCHIVE_TODO: REJECTED
|
291
|
+
:END:
|
292
|
+
|
293
|
+
** REJECTED remove column specifications for DataTable in report specification
|
294
|
+
:PROPERTIES:
|
295
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:22
|
296
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
297
|
+
:ARCHIVE_OLPATH: Check
|
298
|
+
:ARCHIVE_CATEGORY: todo
|
299
|
+
:ARCHIVE_TODO: REJECTED
|
300
|
+
:END:
|
301
|
+
|
302
|
+
** REJECTED Factor common methods in report_shaper
|
303
|
+
:PROPERTIES:
|
304
|
+
:ARCHIVE_TIME: 2024-08-01 Thu 08:22
|
305
|
+
:ARCHIVE_FILE: ~/Sources/ruby/log_sense/todo.org
|
306
|
+
:ARCHIVE_OLPATH: Check
|
307
|
+
:ARCHIVE_CATEGORY: todo
|
308
|
+
:ARCHIVE_TODO: REJECTED
|
309
|
+
:END:
|
metadata
CHANGED
@@ -1,114 +1,114 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_sense
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adolfo Villafiorita
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: browser
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 5.3.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 5.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ipaddr
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.2.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: iso_country_codes
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.7.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.7.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.0.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: terminal-table
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 3.0.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 3.0.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: debug
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 1.9.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 1.9.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: minitest
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 5.24.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
-
description: Generate analytics in HTML, txt, and SQLite format for
|
110
|
+
version: 5.24.0
|
111
|
+
description: Generate analytics in HTML, txt, and SQLite format for Rails and Apache/Nginx
|
112
112
|
log files.
|
113
113
|
email:
|
114
114
|
- adolfo@shair.tech
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- lib/log_sense/rails_aggregator.rb
|
143
143
|
- lib/log_sense/rails_report_shaper.rb
|
144
144
|
- lib/log_sense/report_shaper.rb
|
145
|
+
- lib/log_sense/templates/_apache_theme.css
|
145
146
|
- lib/log_sense/templates/_cdn_links.html.erb
|
146
147
|
- lib/log_sense/templates/_command_invocation.html.erb
|
147
148
|
- lib/log_sense/templates/_command_invocation.txt.erb
|
@@ -151,7 +152,7 @@ files:
|
|
151
152
|
- lib/log_sense/templates/_output_table.txt.erb
|
152
153
|
- lib/log_sense/templates/_performance.html.erb
|
153
154
|
- lib/log_sense/templates/_performance.txt.erb
|
154
|
-
- lib/log_sense/templates/
|
155
|
+
- lib/log_sense/templates/_rails_theme.css
|
155
156
|
- lib/log_sense/templates/_report_data.html.erb
|
156
157
|
- lib/log_sense/templates/_stylesheet.css
|
157
158
|
- lib/log_sense/templates/_summary.html.erb
|
@@ -159,12 +160,14 @@ files:
|
|
159
160
|
- lib/log_sense/templates/_warning.txt.erb
|
160
161
|
- lib/log_sense/templates/report_html.erb
|
161
162
|
- lib/log_sense/templates/report_txt.erb
|
163
|
+
- lib/log_sense/templates/world.svg
|
162
164
|
- lib/log_sense/version.rb
|
163
165
|
- log_sense.gemspec
|
164
166
|
- sample_logs/safety-critical_org.log
|
165
167
|
- sample_logs/spmbook_com.log
|
166
|
-
- screenshots/
|
168
|
+
- screenshots/combined_log-screenshot.png
|
167
169
|
- screenshots/rails-screenshot.png
|
170
|
+
- todo.org
|
168
171
|
homepage: https://github.com/shair-tech/log_sense/
|
169
172
|
licenses:
|
170
173
|
- MIT
|
@@ -188,8 +191,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
191
|
- !ruby/object:Gem::Version
|
189
192
|
version: '0'
|
190
193
|
requirements: []
|
191
|
-
rubygems_version: 3.
|
194
|
+
rubygems_version: 3.5.17
|
192
195
|
signing_key:
|
193
196
|
specification_version: 4
|
194
|
-
summary: Generate analytics for
|
197
|
+
summary: Generate analytics for Rails and Apache/Nginx log file.
|
195
198
|
test_files: []
|
@@ -1,20 +0,0 @@
|
|
1
|
-
:root {
|
2
|
-
--main-accent: #D30001;
|
3
|
-
}
|
4
|
-
|
5
|
-
/*
|
6
|
-
@media (prefers-color-scheme: dark) {
|
7
|
-
:root {
|
8
|
-
--main-accent: #DA2627;
|
9
|
-
}
|
10
|
-
}
|
11
|
-
*/
|
12
|
-
|
13
|
-
#offCanvas {
|
14
|
-
background: var(--main-accent) !important;
|
15
|
-
}
|
16
|
-
|
17
|
-
h1, h2 {
|
18
|
-
color: var(--main-accent) !important;
|
19
|
-
}
|
20
|
-
|
Binary file
|