log_sense 1.9.0 → 2.0.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.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
|