rails-pretty-logger 0.2.8 → 0.3.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +215 -35
  3. data/app/assets/javascripts/rails/pretty/logger/application.js +16 -23
  4. data/app/assets/stylesheets/rails/pretty/logger/application.css +1 -15
  5. data/app/assets/stylesheets/rails/pretty/logger/dashboards.css +463 -141
  6. data/app/assets/stylesheets/rails/pretty/logger/list.css +1 -94
  7. data/app/controllers/rails/pretty/logger/application_controller.rb +31 -0
  8. data/app/controllers/rails/pretty/logger/dashboards_controller.rb +9 -4
  9. data/app/controllers/rails/pretty/logger/hourly_logs_controller.rb +36 -4
  10. data/app/helpers/rails/pretty/logger/application_helper.rb +39 -11
  11. data/app/helpers/rails/pretty/logger/dashboards_helper.rb +114 -14
  12. data/app/views/layouts/rails/pretty/logger/application.html.erb +9 -8
  13. data/app/views/partials/_error_pagination.html.erb +12 -10
  14. data/app/views/partials/_log_entries.html.erb +5 -0
  15. data/app/views/partials/_log_filters.html.erb +14 -0
  16. data/app/views/partials/_pretyyloggernavbar.html.erb +14 -9
  17. data/app/views/rails/pretty/logger/dashboards/index.html.erb +37 -20
  18. data/app/views/rails/pretty/logger/dashboards/logs.html.erb +33 -14
  19. data/app/views/rails/pretty/logger/hourly_logs/index.html.erb +49 -25
  20. data/app/views/rails/pretty/logger/hourly_logs/logs.html.erb +35 -14
  21. data/config/locales/rails_pretty_logger.en.yml +35 -0
  22. data/config/locales/rails_pretty_logger.tr.yml +35 -0
  23. data/lib/generators/rails_pretty_logger/install/install_generator.rb +29 -0
  24. data/lib/generators/rails_pretty_logger/install/templates/rails_pretty_logger.rb +20 -0
  25. data/lib/rails/pretty/logger/active_support_logger.rb +3 -3
  26. data/lib/rails/pretty/logger/config/logger_config.rb +0 -16
  27. data/lib/rails/pretty/logger/configuration.rb +18 -0
  28. data/lib/rails/pretty/logger/console_logger.rb +2 -2
  29. data/lib/rails/pretty/logger/engine.rb +22 -2
  30. data/lib/rails/pretty/logger/rails_logger.rb +62 -41
  31. data/lib/rails/pretty/logger/version.rb +1 -1
  32. data/lib/rails/pretty/logger.rb +547 -31
  33. data/lib/tasks/rails/pretty/logger_tasks.rake +36 -23
  34. metadata +83 -37
  35. data/Rakefile +0 -22
  36. data/app/assets/javascripts/rails/pretty/logger/dashboards.js +0 -2
  37. data/app/assets/javascripts/rails/pretty/logger/list.min.js +0 -2
  38. data/app/models/rails/pretty/logger/application_record.rb +0 -9
  39. data/app/assets/config/{rails_pretty_logger_manifest.js → manifest.js} +1 -1
@@ -1,180 +1,502 @@
1
- /* colors:
2
- #ac0010 - red
3
- #89000C - dark red
4
- #f1f1f1 - light grey
5
- #515151 - dark gray
6
- #ffffff - white
7
- */
8
1
  body {
9
- color: #000000;
10
- font-family:Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
11
- font-size:16px;
12
- padding: 0 30px;
13
- margin: 0;
14
2
  background-color: #f1f1f1;
3
+ color: #1f2328;
4
+ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
5
+ font-size: 15px;
6
+ margin: 0;
7
+ padding: 0 24px 32px;
15
8
  }
9
+
16
10
  a {
17
- display:inline-block;
11
+ color: #2f5f75;
18
12
  text-decoration: none;
19
- background-color: #f1f1f1;
20
- color: #515151;
21
- padding: 5px 5px;
22
- margin: 3px;
23
- border-radius: 5px;
24
- border: #515151 1px solid;
25
- font-family:Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
26
13
  }
14
+
27
15
  a:hover {
28
- background-color: #89000C;
29
- color: #ffffff;
30
- border: #ffffff 1px solid;
31
- }
32
- .active {
33
- background-color: #ffffff!important;
34
- color: #ac0010!important;
35
- border: #89000C 1px solid!important;
16
+ color: #163f52;
17
+ text-decoration: underline;
36
18
  }
19
+
37
20
  hr {
38
- margin: 8px 0;
39
- border:0;
40
- border-bottom: #ffffff 1px solid;
21
+ border: 0;
22
+ border-bottom: 1px solid #d8dee4;
23
+ margin: 14px 0;
41
24
  }
25
+
42
26
  .logger_navbar {
43
- background-color: #ac0010;
44
- padding: 20px 30px 10px;
45
- margin: 0 -30px;
46
- color: #f1f1f1;
27
+ align-items: center;
28
+ background: #24292f;
29
+ border-bottom: 3px solid #ac0010;
30
+ color: #ffffff;
31
+ display: flex;
32
+ gap: 16px;
33
+ justify-content: space-between;
34
+ margin: 0 -24px 20px;
35
+ min-height: 68px;
36
+ padding: 14px 24px;
47
37
  }
48
- .logger_navbar > p {
49
- margin-bottom: 20px;
50
- margin-left: -8px;
38
+
39
+ .logger_navbar__heading h1 {
40
+ font-size: 22px;
41
+ font-weight: 700;
42
+ letter-spacing: 0;
43
+ line-height: 1.2;
44
+ margin: 0;
51
45
  }
52
- .logger_navbar > p > .dashboard_button {
53
- padding: 8px 10px;
54
- margin: auto 20px auto auto;
55
- color: #f1f1f1;
56
- background-color: #ac0010;
57
- border-radius: 5px;
58
- text-transform: uppercase;
59
- text-decoration: none;
60
- font-family:Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
61
- border:none;
46
+
47
+ .logger_navbar__actions {
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ gap: 8px;
51
+ justify-content: flex-end;
62
52
  }
63
- .logger_navbar > p > .dashboard_button:hover {
64
- background-color: #89000C;
65
- border: none;
53
+
54
+ .dashboard_button,
55
+ .logger_navbar__actions a,
56
+ .log-toolbar a,
57
+ .sort {
58
+ align-items: center;
59
+ background: #ffffff;
60
+ border: 1px solid #c9d1d9;
61
+ border-radius: 6px;
62
+ color: #24292f;
63
+ display: inline-flex;
64
+ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
65
+ font-size: 14px;
66
+ font-weight: 600;
67
+ line-height: 1.2;
68
+ min-height: 34px;
69
+ padding: 7px 11px;
70
+ text-decoration: none;
66
71
  }
67
- .logger_navbar > a {
68
- display: inline-block;
72
+
73
+ .dashboard_button:hover,
74
+ .logger_navbar__actions a:hover,
75
+ .log-toolbar a:hover,
76
+ .sort:hover {
77
+ background: #f6f8fa;
78
+ border-color: #8c959f;
79
+ color: #111111;
69
80
  text-decoration: none;
70
- background-color: #ac0010;
71
- color: #f1f1f1;
72
- padding: 8px 10px;
73
- margin: auto auto 10px 20px;
74
- border-radius: 5px;
75
- border: #f1f1f1 1px solid;
76
81
  }
77
- .logger_navbar > .dashboard_button {
78
- border-radius: 5px 0 0 5px;
82
+
83
+ .active,
84
+ .log-file-strip a.active {
85
+ background: #fff5f5;
86
+ border-color: #ac0010;
87
+ color: #89000c;
79
88
  }
80
89
 
81
- .logger_navbar > .clear_logs {
82
- display: inline-block;
90
+ .log-file-strip {
91
+ align-items: center;
92
+ display: flex;
93
+ flex-wrap: wrap;
94
+ gap: 8px;
95
+ margin: 0 0 16px;
96
+ }
97
+
98
+ .log-file-strip__label,
99
+ .log-file-list__header h2 {
100
+ color: #57606a;
101
+ font-size: 13px;
102
+ font-weight: 700;
103
+ letter-spacing: 0;
104
+ margin: 0;
105
+ text-transform: uppercase;
106
+ }
107
+
108
+ .log-file-strip a {
109
+ background: #ffffff;
110
+ border: 1px solid #d0d7de;
111
+ border-radius: 6px;
112
+ color: #24292f;
113
+ font-size: 13px;
114
+ padding: 6px 9px;
83
115
  text-decoration: none;
84
- background-color: #ac0010;
85
- color: #f1f1f1;
86
- padding: 8px 10px;
87
- margin: auto auto auto -5px;
88
- border-radius: 0 5px 5px 0;
89
- border: #f1f1f1 1px solid;
90
116
  }
91
- .logger_navbar > a:hover {
92
- color:#f1f1f1;
93
- background-color:#89000C;
117
+
118
+ .log-file-strip a:hover {
119
+ border-color: #8c959f;
120
+ text-decoration: none;
121
+ }
122
+
123
+ .log-file-list {
124
+ display: flex;
125
+ flex-direction: column;
126
+ gap: 8px;
127
+ margin: 18px 0 32px;
128
+ padding: 0;
129
+ }
130
+
131
+ .log-file-list__header {
132
+ margin-bottom: 2px;
133
+ }
134
+
135
+ .log-file-row {
136
+ align-items: center;
137
+ background: #ffffff;
138
+ border: 1px solid #d0d7de;
139
+ border-radius: 6px;
140
+ display: flex;
141
+ gap: 16px;
142
+ justify-content: space-between;
143
+ list-style: none;
144
+ padding: 12px 14px;
145
+ }
146
+
147
+ .log-file-row__main {
148
+ display: flex;
149
+ flex-direction: column;
150
+ gap: 4px;
151
+ min-width: 0;
152
+ }
153
+
154
+ .log-file-row__name {
155
+ color: #24292f;
156
+ font-size: 15px;
157
+ font-weight: 700;
158
+ overflow-wrap: anywhere;
159
+ }
160
+
161
+ .log-file-row__meta {
162
+ color: #57606a;
163
+ font-size: 12px;
164
+ }
165
+
166
+ .empty-state {
167
+ align-items: center;
168
+ display: flex;
169
+ justify-content: center;
170
+ min-height: 220px;
171
+ text-align: center;
94
172
  }
95
- .logger_navbar > .clear_logs:hover {
96
- color: #89000C;
97
- background-color: #FFFFFF;
173
+
174
+ .empty-state--inline {
175
+ min-height: 140px;
98
176
  }
99
- p {
100
- padding: 6px 0;
101
- font-family: Consolas, "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", Monaco, "Courier New", "monospace";
102
- font-size:16px;
177
+
178
+ .message {
179
+ color: #57606a;
180
+ font-size: 20px;
181
+ font-weight: 700;
182
+ letter-spacing: 0;
183
+ margin: 0;
103
184
  }
104
- .form-group {
105
- background-color: #dadada;
106
- padding: 5px 20px;
107
- margin: 15px 0;
108
- border-radius: 5px;
185
+
186
+ .form-group,
187
+ .filter-panel {
188
+ background: #ffffff;
189
+ border: 1px solid #d0d7de;
190
+ border-radius: 6px;
191
+ margin: 16px 0;
192
+ padding: 14px;
109
193
  }
194
+
110
195
  .form-group p {
111
- color: #515151;
112
- font-family:Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
196
+ align-items: center;
197
+ display: flex;
198
+ flex-wrap: wrap;
199
+ gap: 8px;
200
+ margin: 0;
113
201
  }
114
- input {
115
- border-radius: 2px;
116
- border: none;
117
- padding: 8px 10px;
118
- margin: 3px 20px 3px 3px;
119
- font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
120
- color: #5E5E5E;
202
+
203
+ .form-error {
204
+ background: #fff5f5;
205
+ border: 1px solid #ffb3b3;
206
+ border-radius: 6px;
207
+ color: #89000c;
208
+ font-weight: 700;
209
+ margin: 14px 0;
210
+ padding: 10px 12px;
211
+ }
212
+
213
+ .log-controls {
214
+ display: flex;
215
+ flex-direction: column;
216
+ gap: 12px;
217
+ }
218
+
219
+ .log-toolbar,
220
+ .log_filters,
221
+ .hourly_filters {
222
+ align-items: center;
223
+ display: flex;
224
+ flex-wrap: wrap;
225
+ gap: 8px;
226
+ }
227
+
228
+ .log_filters label,
229
+ .hourly_filters label,
230
+ .form-group label {
231
+ color: #57606a;
232
+ font-size: 13px;
233
+ font-weight: 700;
234
+ }
235
+
236
+ input,
237
+ select {
238
+ background: #ffffff;
239
+ border: 1px solid #c9d1d9;
240
+ border-radius: 6px;
241
+ color: #24292f;
242
+ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
121
243
  font-size: 14px;
244
+ line-height: 1.2;
245
+ margin: 0;
246
+ min-height: 34px;
247
+ padding: 7px 10px;
122
248
  }
123
- input[type=submit]{
124
- font-size:16px;
125
- padding: 8px 10px;
126
- border-radius: 3px;
127
- background-color: #5E5E5E;
128
- color: #f1f1f1;
129
- border: none;
130
- }
131
- input[type=submit]:hover {
132
- background-color: #437085;
133
- color: #f1f1f1;
134
- }
135
- .form-group .clear_logs {
136
- background-color: #ac0010;
137
- border: none;
138
- color: #f1f1f1;
139
- }
140
- .form-group .clear_logs:hover {
141
- background-color: #89000C;
142
- }
143
- .hourly-list .search {
144
- margin: 30px 20px 30px 50px;
145
- border-radius: 2px;
146
- border: #515151 1px solid;
147
- padding: 8px 10px;
148
- font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
149
- color: #5E5E5E;
249
+
250
+ input:focus,
251
+ select:focus {
252
+ border-color: #2f81f7;
253
+ outline: 2px solid rgba(47, 129, 247, 0.2);
254
+ }
255
+
256
+ input[type="submit"],
257
+ button.clear_logs {
258
+ background: #24292f;
259
+ border: 1px solid #24292f;
260
+ border-radius: 6px;
261
+ color: #ffffff;
262
+ cursor: pointer;
263
+ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
150
264
  font-size: 14px;
265
+ font-weight: 700;
266
+ min-height: 34px;
267
+ padding: 7px 12px;
151
268
  }
152
- .hourly-list .sort {
153
- font-size:16px;
154
- padding: 8px 20px;
155
- border-radius: 3px;
156
- background-color: #5E5E5E;
157
- color: #f1f1f1;
158
- border: none;
269
+
270
+ input[type="submit"]:hover {
271
+ background: #3b424a;
159
272
  }
160
- .hourly-list .sort:hover {
161
- background-color: #437085;
162
- color: #f1f1f1;
273
+
274
+ .clear_logs_form {
275
+ display: inline-flex;
276
+ margin: 0;
163
277
  }
164
- .hourly-list .list {
165
- padding-left: 50px;
278
+
279
+ .clear_logs_form div {
280
+ display: inline-flex;
281
+ }
282
+
283
+ button.clear_logs {
284
+ background: #ac0010;
285
+ border-color: #ac0010;
286
+ white-space: nowrap;
287
+ }
288
+
289
+ button.clear_logs:hover {
290
+ background: #89000c;
291
+ border-color: #89000c;
292
+ }
293
+
294
+ .pagination {
295
+ display: flex;
296
+ flex-wrap: wrap;
297
+ gap: 6px;
298
+ margin: 14px 0;
299
+ padding: 0;
166
300
  }
167
- .hourly-list .list li{
301
+
302
+ .pagination li {
303
+ display: inline-flex;
168
304
  list-style: none;
169
- display: block;
170
- width: auto;
171
- margin-right: 50px;
172
- float: left;
173
305
  }
174
- .hourly-list .list li h5 {
175
- marging-top: 30px;
176
- margin-bottom: 30px;
306
+
307
+ .pagination a {
308
+ align-items: center;
309
+ background: #ffffff;
310
+ border: 1px solid #d0d7de;
311
+ border-radius: 6px;
312
+ color: #24292f;
313
+ display: inline-flex;
314
+ font-size: 13px;
315
+ font-weight: 700;
316
+ justify-content: center;
317
+ min-height: 32px;
318
+ min-width: 32px;
319
+ text-decoration: none;
177
320
  }
321
+
322
+ .pagination a:hover {
323
+ border-color: #8c959f;
324
+ text-decoration: none;
325
+ }
326
+
327
+ .log-entries {
328
+ display: flex;
329
+ flex-direction: column;
330
+ gap: 8px;
331
+ margin: 16px 0 32px;
332
+ }
333
+
334
+ .log-line,
335
+ .structured-log,
336
+ .log-request {
337
+ background: #ffffff;
338
+ border: 1px solid #d0d7de;
339
+ border-radius: 6px;
340
+ color: #24292f;
341
+ font-family: Consolas, "Andale Mono", "Lucida Console", Monaco, "Courier New", monospace;
342
+ font-size: 14px;
343
+ line-height: 1.45;
344
+ overflow-wrap: anywhere;
345
+ }
346
+
347
+ .log-line {
348
+ padding: 8px 10px;
349
+ white-space: pre-wrap;
350
+ }
351
+
352
+ .log-line--parameters {
353
+ background: #fbfbfb;
354
+ }
355
+
178
356
  .highlight {
179
- background-color:#ffb62a;
357
+ background: #fff1b8;
358
+ border-color: #d4a72c;
359
+ }
360
+
361
+ .structured-log {
362
+ border-left: 4px solid #2f5f75;
363
+ padding: 10px 12px;
364
+ }
365
+
366
+ .structured-log--error,
367
+ .structured-log--fatal {
368
+ border-left-color: #ac0010;
369
+ }
370
+
371
+ .structured-log--warn {
372
+ border-left-color: #a46b00;
373
+ }
374
+
375
+ .structured-log__header {
376
+ align-items: baseline;
377
+ display: flex;
378
+ flex-wrap: wrap;
379
+ gap: 8px;
380
+ }
381
+
382
+ .structured-log__severity,
383
+ .log-request__status {
384
+ background: #57606a;
385
+ border-radius: 4px;
386
+ color: #ffffff;
387
+ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
388
+ font-size: 12px;
389
+ font-weight: 700;
390
+ padding: 2px 6px;
391
+ }
392
+
393
+ .structured-log__timestamp,
394
+ .log-request__duration {
395
+ color: #57606a;
396
+ font-size: 12px;
397
+ }
398
+
399
+ .structured-log__message {
400
+ color: #24292f;
401
+ }
402
+
403
+ .structured-log__metadata {
404
+ display: grid;
405
+ grid-template-columns: max-content minmax(0, 1fr);
406
+ margin: 8px 0 0;
407
+ row-gap: 4px;
408
+ }
409
+
410
+ .structured-log__metadata dt {
411
+ color: #57606a;
412
+ font-weight: 700;
413
+ padding-right: 12px;
414
+ }
415
+
416
+ .structured-log__metadata dd {
417
+ margin: 0;
418
+ overflow-wrap: anywhere;
419
+ }
420
+
421
+ .log-request {
422
+ overflow: hidden;
423
+ }
424
+
425
+ .log-request--error {
426
+ border-left: 4px solid #ac0010;
427
+ }
428
+
429
+ .log-request__summary {
430
+ align-items: center;
431
+ background: #ffffff;
432
+ cursor: pointer;
433
+ display: flex;
434
+ flex-wrap: wrap;
435
+ gap: 8px;
436
+ padding: 10px 12px;
437
+ }
438
+
439
+ .log-request__method {
440
+ background: #2f5f75;
441
+ border-radius: 4px;
442
+ color: #ffffff;
443
+ font-family: Gotham, "Helvetica Neue", Helvetica, Arial, sans-serif;
444
+ font-size: 12px;
445
+ font-weight: 700;
446
+ padding: 2px 6px;
447
+ }
448
+
449
+ .log-request__path {
450
+ font-weight: 700;
451
+ }
452
+
453
+ .log-request__body {
454
+ background: #fbfbfb;
455
+ border-top: 1px solid #d8dee4;
456
+ margin: 0;
457
+ overflow-x: auto;
458
+ padding: 10px 12px;
459
+ white-space: pre-wrap;
460
+ }
461
+
462
+ @media (max-width: 720px) {
463
+ body {
464
+ padding: 0 12px 24px;
465
+ }
466
+
467
+ .logger_navbar {
468
+ align-items: stretch;
469
+ flex-direction: column;
470
+ margin: 0 -12px 16px;
471
+ }
472
+
473
+ .logger_navbar__actions,
474
+ .log-toolbar,
475
+ .log_filters,
476
+ .hourly_filters,
477
+ .form-group p {
478
+ align-items: stretch;
479
+ flex-direction: column;
480
+ }
481
+
482
+ .dashboard_button,
483
+ .logger_navbar__actions a,
484
+ .log-toolbar a,
485
+ .sort,
486
+ input,
487
+ select,
488
+ input[type="submit"],
489
+ button.clear_logs {
490
+ justify-content: center;
491
+ width: 100%;
492
+ }
493
+
494
+ .log-file-row {
495
+ align-items: stretch;
496
+ flex-direction: column;
497
+ }
498
+
499
+ .structured-log__metadata {
500
+ grid-template-columns: minmax(0, 1fr);
501
+ }
180
502
  }