simple_cloud_logging 1.2.3 → 1.2.4
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/README.md +502 -0
- data/examples/assertion1.rb +26 -0
- data/examples/assertion2.rb +26 -0
- data/examples/assertion3.rb +26 -0
- data/examples/assertion4.rb +27 -0
- data/examples/examples.rb +81 -0
- data/examples/max_size.rb +18 -0
- data/examples/no-colors.rb +29 -0
- data/examples/show_caller.rb +26 -0
- data/examples/show_level.rb +26 -0
- metadata +11 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bbe486d02c7e3d333c061314ac82a8a7e8f654ef7f731c26fb68ef556a92e57
|
4
|
+
data.tar.gz: 5422ec3e5aa4071f70b5e85d7b8930330e8635ba4f1521d5e4f34c485768e21b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 563c894ffa0c86ba84d2998e8dee00006a409e23b8358c59d3f777c8279544b1a8f4024548a8427c39a4f0adc11844507c2928ba1d082ea9e7bab7bb0ce352a3
|
7
|
+
data.tar.gz: 13eb9ab209c45d44c79616e008a098f4123fbc05ded6cf2d3b0bf2c7551c15a60ec32debf6998aad26a054e245a3f7abed90558f3dfe00c143486701474c5f3e
|
data/README.md
ADDED
@@ -0,0 +1,502 @@
|
|
1
|
+
 
|
2
|
+
|
3
|
+
# Simple Cloud Logging
|
4
|
+
|
5
|
+
**Simple** and **Colorful** logging library for Ruby, with the following features:
|
6
|
+
|
7
|
+
- :heavy_check_mark: Colorization,
|
8
|
+
- :heavy_check_mark: Log Size Control,
|
9
|
+
- :heavy_check_mark: Nesting Debug Information,
|
10
|
+
- :heavy_check_mark: Nesting Assertions; and
|
11
|
+
- :heavy_check_mark: Dummy Logger Facade.
|
12
|
+
|
13
|
+
|
14
|
+

|
15
|
+
|
16
|
+
**Outline**
|
17
|
+
|
18
|
+
1. [Installation](#1-installation)
|
19
|
+
2. [Getting Started](#2-getting-started)
|
20
|
+
3. [Closing Lines with Details](#3-closing-lines-with-details)
|
21
|
+
4. [Starting and Closing in One Line](#4-starting-and-closing-in-one-line)
|
22
|
+
5. [Writing Blank Lines](#5-writing-blank-lines)
|
23
|
+
6. [Writing Errors](#6-writing-errors)
|
24
|
+
7. [Abbreviations](#7-abbreviations)
|
25
|
+
8. [Skipping With Details](#8-skipping-with-details)
|
26
|
+
9. [Custom Line Closing](#9-custom-line-closing)
|
27
|
+
10. [Custom Line Closing](#10-custom-line-closing)
|
28
|
+
11. [Nesting Lines](#11-nesting-lines)
|
29
|
+
12. [Nesting Assertions](#12-nesting-assertions)
|
30
|
+
13. [Size Control](#13-size-control)
|
31
|
+
14. [Disabling Colorization](#14-disabling-colorization)
|
32
|
+
15. [Showing Nesting Level](#15-showing-nesting-level)
|
33
|
+
16. [Showing Callers](#16-showing-callers)
|
34
|
+
17. [Dummy Loggers](#17-dummy-loggers)
|
35
|
+
18. [Versioning](#18-versioning)
|
36
|
+
19. [Authors](#19-authors)
|
37
|
+
20. [License](#20-license)
|
38
|
+
|
39
|
+
## 1. Installation
|
40
|
+
|
41
|
+
```
|
42
|
+
gem install simple_cloud_logging
|
43
|
+
```
|
44
|
+
|
45
|
+
## 2. Getting Started
|
46
|
+
|
47
|
+
Start an close a log line.
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
require 'simple_cloud_logging'
|
51
|
+
|
52
|
+
l = BlackStack::LocalLogger.new("examples.log")
|
53
|
+
|
54
|
+
l.logs "Calculate 1+1... "
|
55
|
+
n = 1 + 1
|
56
|
+
l.done
|
57
|
+
```
|
58
|
+
|
59
|
+
```
|
60
|
+
2024-07-26 15:27:04: Calculate 1+1... done
|
61
|
+
```
|
62
|
+
|
63
|
+
## 3. Closing Lines with Details
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
l.logs "Calculate 1+1... "
|
67
|
+
n = 1 + 1
|
68
|
+
l.done(details: n)
|
69
|
+
```
|
70
|
+
|
71
|
+
```
|
72
|
+
2024-07-26 15:27:04: Calculate 1+1... done (2)
|
73
|
+
```
|
74
|
+
|
75
|
+
## 4. Starting and Closing in One Line
|
76
|
+
|
77
|
+
```ruby
|
78
|
+
require 'simple_cloud_logging'
|
79
|
+
|
80
|
+
l = BlackStack::LocalLogger.new("examples.log")
|
81
|
+
|
82
|
+
l.log "Example 1:"
|
83
|
+
l.logs "Calculate 1+1... "
|
84
|
+
n = 1 + 1
|
85
|
+
l.done
|
86
|
+
```
|
87
|
+
|
88
|
+
```
|
89
|
+
2024-07-26 15:27:04: Example 1:
|
90
|
+
2024-07-26 15:27:04: Calculate 1+1... done
|
91
|
+
```
|
92
|
+
|
93
|
+
## 5. Writing Blank Lines
|
94
|
+
|
95
|
+
```ruby
|
96
|
+
require 'simple_cloud_logging'
|
97
|
+
|
98
|
+
l = BlackStack::LocalLogger.new("examples.log")
|
99
|
+
|
100
|
+
l.blank_line
|
101
|
+
l.logs "Calculate 1+1... "
|
102
|
+
n = 1 + 1
|
103
|
+
l.done
|
104
|
+
```
|
105
|
+
|
106
|
+
```
|
107
|
+
2024-07-26 15:27:04:
|
108
|
+
2024-07-26 15:27:04: Calculate 1+1... done
|
109
|
+
```
|
110
|
+
|
111
|
+
## 6. Writing Errors
|
112
|
+
|
113
|
+
```ruby
|
114
|
+
l.logs "Calculate 4/0... "
|
115
|
+
begin
|
116
|
+
n = 4/0
|
117
|
+
l.done(details: n)
|
118
|
+
rescue => e
|
119
|
+
l.error(e)
|
120
|
+
end
|
121
|
+
```
|
122
|
+
|
123
|
+
```
|
124
|
+
2024-07-26 15:27:04: Calculate 4/0... error: divided by 0
|
125
|
+
examples.rb:32:in `/'
|
126
|
+
examples.rb:32:in `<main>'.
|
127
|
+
```
|
128
|
+
|
129
|
+
## 7. Abbreviations
|
130
|
+
|
131
|
+
You can close a line with other `yes` or `no`.
|
132
|
+
|
133
|
+
```ruby
|
134
|
+
i = 0
|
135
|
+
while i < 6
|
136
|
+
l.logs "Is #{i}==3?... "
|
137
|
+
if i == 3
|
138
|
+
l.yes
|
139
|
+
else
|
140
|
+
l.no
|
141
|
+
end
|
142
|
+
i += 1
|
143
|
+
end
|
144
|
+
```
|
145
|
+
|
146
|
+
You can close a line with other `ok` or `skip` too.
|
147
|
+
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
i = 0
|
151
|
+
while i < 6
|
152
|
+
l.logs "Only even numbers: #{i}... "
|
153
|
+
if i % 2 == 0
|
154
|
+
l.ok
|
155
|
+
else
|
156
|
+
l.skip
|
157
|
+
end
|
158
|
+
i += 1
|
159
|
+
end
|
160
|
+
```
|
161
|
+
|
162
|
+
## 8. Skipping With Details
|
163
|
+
|
164
|
+
```ruby
|
165
|
+
i = 0
|
166
|
+
while i < 6
|
167
|
+
l.logs "#{i}... "
|
168
|
+
if i % 2 == 0
|
169
|
+
l.ok
|
170
|
+
else
|
171
|
+
l.skip(details: 'it is an odd number')
|
172
|
+
end
|
173
|
+
i += 1
|
174
|
+
end
|
175
|
+
```
|
176
|
+
|
177
|
+
## 9. Custom Line Closing
|
178
|
+
|
179
|
+
As you can read above, you can start a log line with the `logs` method, and you can close it with any of the methopds `done`, `error`, `yes`, `no`, `ok` and `skip`.
|
180
|
+
|
181
|
+
Each method is printed with its own color:
|
182
|
+
|
183
|
+
- `done`: green.
|
184
|
+
- `error`: red.
|
185
|
+
- `yes`: green.
|
186
|
+
- `no`: yellow.
|
187
|
+
- `ok`: green.
|
188
|
+
- `skip`: yellow.
|
189
|
+
|
190
|
+
## 10. Custom Line Closing
|
191
|
+
|
192
|
+
If you need to close a line with a specitic text, you can use the `logf` method.
|
193
|
+
|
194
|
+
You can also add color to your custom text.
|
195
|
+
|
196
|
+
```ruby
|
197
|
+
i = 0
|
198
|
+
while i < 6
|
199
|
+
l.logs "#{i}... "
|
200
|
+
if i % 2 == 0
|
201
|
+
l.ok
|
202
|
+
else
|
203
|
+
l.logf("rejected".blue)
|
204
|
+
end
|
205
|
+
i += 1
|
206
|
+
end
|
207
|
+
```
|
208
|
+
|
209
|
+
## 11. Nesting Lines
|
210
|
+
|
211
|
+
```ruby
|
212
|
+
l.logs "Skipping odd numbers... "
|
213
|
+
i = 0
|
214
|
+
while i < 6
|
215
|
+
l.logs "#{i}... "
|
216
|
+
if i % 2 == 0
|
217
|
+
l.ok
|
218
|
+
else
|
219
|
+
l.skip(details: 'it is an odd number')
|
220
|
+
end
|
221
|
+
i += 1
|
222
|
+
end
|
223
|
+
l.done
|
224
|
+
```
|
225
|
+
|
226
|
+
```
|
227
|
+
2024-07-26 15:27:04: Skipping odd numbers...
|
228
|
+
2024-07-26 15:27:04: > 0... ok
|
229
|
+
2024-07-26 15:27:04: > 1... skip (it is an odd number)
|
230
|
+
2024-07-26 15:27:04: > 2... ok
|
231
|
+
2024-07-26 15:27:04: > 3... skip (it is an odd number)
|
232
|
+
2024-07-26 15:27:04: > 4... ok
|
233
|
+
2024-07-26 15:27:04: > 5... skip (it is an odd number)
|
234
|
+
2024-07-26 15:27:04: done
|
235
|
+
```
|
236
|
+
|
237
|
+
## 12. Nesting Assertions
|
238
|
+
|
239
|
+
You can setup **simple_cloud_loggin** to check if you are nesting your log correctly.
|
240
|
+
|
241
|
+
```ruby
|
242
|
+
BlackStack::Logger.set(
|
243
|
+
nesting_assertion: true,
|
244
|
+
)
|
245
|
+
```
|
246
|
+
|
247
|
+
Below I wrote 4 diffent examples of wrong nestung usage, and the output of each one.
|
248
|
+
|
249
|
+
**Example 1:**
|
250
|
+
|
251
|
+
```ruby
|
252
|
+
begin
|
253
|
+
l.blank_line
|
254
|
+
l.logs "Looking for number 3... "
|
255
|
+
i = 0
|
256
|
+
while i < 6
|
257
|
+
l.logs "#{i}... "
|
258
|
+
if i == 3
|
259
|
+
#l.yes # --> I missed to close the log line !
|
260
|
+
else
|
261
|
+
l.no
|
262
|
+
end
|
263
|
+
i += 1
|
264
|
+
end
|
265
|
+
l.done
|
266
|
+
rescue => e
|
267
|
+
l.error(e)
|
268
|
+
end
|
269
|
+
```
|
270
|
+
|
271
|
+
```
|
272
|
+
2024-07-26 15:58:43:
|
273
|
+
2024-07-26 15:58:43: Looking for number 3...
|
274
|
+
2024-07-26 15:58:43: > 0... no
|
275
|
+
2024-07-26 15:58:43: > 1... no
|
276
|
+
2024-07-26 15:58:43: > 2... no
|
277
|
+
2024-07-26 15:58:43: > 3... error: Log nesting assertion: You missed to close the log-level that you opened at assertion1.rb:15:in `<main>'.
|
278
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:150:in `logs'
|
279
|
+
/home/leandro/code/simple_cloud_logging/lib/locallogger.rb:46:in `logs'
|
280
|
+
assertion1.rb:15:in `<main>'.
|
281
|
+
```
|
282
|
+
|
283
|
+
**Example 2:**
|
284
|
+
|
285
|
+
```ruby
|
286
|
+
begin
|
287
|
+
l.blank_line
|
288
|
+
l.logs "Looking for number 3... "
|
289
|
+
i = 0
|
290
|
+
while i < 6
|
291
|
+
#l.logs "#{i}... " # --> I missed to open the log.
|
292
|
+
if i == 3
|
293
|
+
l.yes
|
294
|
+
else
|
295
|
+
l.no
|
296
|
+
end
|
297
|
+
i += 1
|
298
|
+
end
|
299
|
+
l.done
|
300
|
+
rescue => e
|
301
|
+
l.error(e)
|
302
|
+
end
|
303
|
+
```
|
304
|
+
|
305
|
+
```
|
306
|
+
2024-07-26 15:59:44:
|
307
|
+
2024-07-26 15:59:44: Looking for number 3... no
|
308
|
+
error: Log nesting assertion: You are closing 2 times the level started, or you missed to open that lavel, or you closed the another level in the middle 2 times.
|
309
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:218:in `logf'
|
310
|
+
/home/leandro/code/simple_cloud_logging/lib/locallogger.rb:53:in `logf'
|
311
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:261:in `no'
|
312
|
+
assertion2.rb:19:in `<main>'.
|
313
|
+
```
|
314
|
+
|
315
|
+
**Example 3:**
|
316
|
+
|
317
|
+
```ruby
|
318
|
+
begin
|
319
|
+
l.blank_line
|
320
|
+
#l.logs "Looking for number 3... " # --> I missed to open the log.
|
321
|
+
i = 0
|
322
|
+
while i < 6
|
323
|
+
l.logs "#{i}... "
|
324
|
+
if i == 3
|
325
|
+
l.yes
|
326
|
+
else
|
327
|
+
l.no
|
328
|
+
end
|
329
|
+
i += 1
|
330
|
+
end
|
331
|
+
l.done
|
332
|
+
rescue => e
|
333
|
+
l.error(e)
|
334
|
+
end
|
335
|
+
```
|
336
|
+
|
337
|
+
```
|
338
|
+
2024-07-26 16:00:41:
|
339
|
+
2024-07-26 16:00:41: 0... no
|
340
|
+
2024-07-26 16:00:41: 1... no
|
341
|
+
2024-07-26 16:00:41: 2... no
|
342
|
+
2024-07-26 16:00:41: 3... yes
|
343
|
+
2024-07-26 16:00:41: 4... no
|
344
|
+
2024-07-26 16:00:41: 5... no
|
345
|
+
error: Log nesting assertion: You are closing 2 times the level started, or you missed to open that lavel, or you closed the another level in the middle 2 times.
|
346
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:218:in `logf'
|
347
|
+
/home/leandro/code/simple_cloud_logging/lib/locallogger.rb:53:in `logf'
|
348
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:233:in `done'
|
349
|
+
assertion3.rb:23:in `<main>'.
|
350
|
+
```
|
351
|
+
|
352
|
+
**Example 4:**
|
353
|
+
|
354
|
+
```ruby
|
355
|
+
begin
|
356
|
+
l.blank_line
|
357
|
+
l.logs "Looking for number 3... "
|
358
|
+
i = 0
|
359
|
+
while i < 6
|
360
|
+
l.logs "#{i}... "
|
361
|
+
if i == 3
|
362
|
+
l.yes
|
363
|
+
l.no # --> I closed the same level 2 times by mistake
|
364
|
+
else
|
365
|
+
l.no
|
366
|
+
end
|
367
|
+
i += 1
|
368
|
+
end
|
369
|
+
l.done
|
370
|
+
rescue => e
|
371
|
+
l.error(e)
|
372
|
+
end
|
373
|
+
```
|
374
|
+
|
375
|
+
```
|
376
|
+
2024-07-26 16:01:23:
|
377
|
+
2024-07-26 16:01:23: Looking for number 3...
|
378
|
+
2024-07-26 16:01:23: > 0... no
|
379
|
+
2024-07-26 16:01:23: > 1... no
|
380
|
+
2024-07-26 16:01:23: > 2... no
|
381
|
+
2024-07-26 16:01:23: > 3... yes
|
382
|
+
2024-07-26 16:01:23: no
|
383
|
+
2024-07-26 16:01:23: 4... no
|
384
|
+
2024-07-26 16:01:23: 5... no
|
385
|
+
error: Log nesting assertion: You are closing 2 times the level started, or you missed to open that lavel, or you closed the another level in the middle 2 times.
|
386
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:218:in `logf'
|
387
|
+
/home/leandro/code/simple_cloud_logging/lib/locallogger.rb:53:in `logf'
|
388
|
+
/home/leandro/code/simple_cloud_logging/lib/baselogger.rb:233:in `done'
|
389
|
+
assertion4.rb:24:in `<main>'.
|
390
|
+
```
|
391
|
+
|
392
|
+
## 13. Size Control
|
393
|
+
|
394
|
+
```ruby
|
395
|
+
BlackStack::Logger.set(
|
396
|
+
min_size: 6*1024, # 6KB bytes
|
397
|
+
max_size: 10*1024 # 10KB bytes
|
398
|
+
)
|
399
|
+
```
|
400
|
+
|
401
|
+
Each time the logfile grows over `max_size` bytes, it will be dropbed to `min_size` bytes.
|
402
|
+
|
403
|
+
The dropping is made by dropping the head lines. The tail is preserved.
|
404
|
+
|
405
|
+
## 14. Disabling Colorization
|
406
|
+
|
407
|
+
```ruby
|
408
|
+
BlackStack::Logger.set(
|
409
|
+
colorize: false,
|
410
|
+
)
|
411
|
+
```
|
412
|
+
|
413
|
+
Disabling colorization gets **simple_cloud_logging** overwritting the instance methods `green`, `red`, `blue` and `yellow` of the class `String` to make them non-effect.
|
414
|
+
|
415
|
+
If you require the `colorize` gem after the logger setup, colors will be activated again.
|
416
|
+
|
417
|
+
## 15. Showing Nesting Level
|
418
|
+
|
419
|
+
If you are working with nested logs, you can show the nesting level of the current line.
|
420
|
+
|
421
|
+
This feature is useful if you want to visualize where you open and close each loggin line.
|
422
|
+
|
423
|
+
```ruby
|
424
|
+
BlackStack::Logger.set(
|
425
|
+
show_nesting_level: true,
|
426
|
+
)
|
427
|
+
```
|
428
|
+
|
429
|
+
```
|
430
|
+
2024-07-26 16:07:43 - level 0:
|
431
|
+
2024-07-26 16:07:43 - level 0: Looking for number 3...
|
432
|
+
2024-07-26 16:07:43 - level 1: > 0... no
|
433
|
+
2024-07-26 16:07:43 - level 1: > 1... no
|
434
|
+
2024-07-26 16:07:43 - level 1: > 2... no
|
435
|
+
2024-07-26 16:07:43 - level 1: > 3... yes
|
436
|
+
2024-07-26 16:07:43 - level 1: > 4... no
|
437
|
+
2024-07-26 16:07:43 - level 1: > 5... no
|
438
|
+
2024-07-26 16:07:43 - level 1: done
|
439
|
+
```
|
440
|
+
|
441
|
+
## 16. Showing Callers
|
442
|
+
|
443
|
+
You can show from which like in your souce code you opened each log line.
|
444
|
+
|
445
|
+
This feature is useful if you want to visualize and fix nesting errors.
|
446
|
+
|
447
|
+
```ruby
|
448
|
+
BlackStack::Logger.set(
|
449
|
+
show_nesting_caller: true,
|
450
|
+
)
|
451
|
+
```
|
452
|
+
|
453
|
+
```
|
454
|
+
2024-07-26 16:10:59 - caller show_caller.rb:12:in `<main>': Looking for number 3...
|
455
|
+
2024-07-26 16:10:59 - caller show_caller.rb:15:in `<main>': > 0... no
|
456
|
+
2024-07-26 16:10:59 - caller show_caller.rb:15:in `<main>': > 1... no
|
457
|
+
2024-07-26 16:10:59 - caller show_caller.rb:15:in `<main>': > 2... no
|
458
|
+
2024-07-26 16:10:59 - caller show_caller.rb:15:in `<main>': > 3... yes
|
459
|
+
2024-07-26 16:10:59 - caller show_caller.rb:15:in `<main>': > 4... no
|
460
|
+
2024-07-26 16:10:59 - caller show_caller.rb:15:in `<main>': > 5... no
|
461
|
+
2024-07-26 16:10:59: done
|
462
|
+
```
|
463
|
+
|
464
|
+
## 17. Dummy Loggers
|
465
|
+
|
466
|
+
The methods of the `DummyLogger` class just do nothing.
|
467
|
+
|
468
|
+
You can choose between `LocalLogger` or `DummyLogger` depending if you want to write log or not, dynamically.
|
469
|
+
|
470
|
+
`DummyLogger` is useful to pass or not a logger to a function, for deep-nested logging.
|
471
|
+
|
472
|
+
**Example:**
|
473
|
+
|
474
|
+
```ruby
|
475
|
+
class FooClass
|
476
|
+
attr_accessor :logger
|
477
|
+
|
478
|
+
def initialize(the_logger=nil)
|
479
|
+
self.logger=the_logger
|
480
|
+
self.logger = BlackStack::DummyLogger.new(nil) if self.logger.nil? # assign a dummy logger that just generate output on the screen
|
481
|
+
end
|
482
|
+
|
483
|
+
def do_something()
|
484
|
+
self.logger.logs 'This log line will show up in the console only if the logger is not a DummyLogger instance...'
|
485
|
+
# do something here
|
486
|
+
self.logger.done
|
487
|
+
end
|
488
|
+
end # class FooClass
|
489
|
+
```
|
490
|
+
|
491
|
+
## 18. Versioning
|
492
|
+
|
493
|
+
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the last [ruby gem](https://rubygems.org/gems/simple_command_line_parser).
|
494
|
+
|
495
|
+
## 19. Authors
|
496
|
+
|
497
|
+
* **Leandro Daniel Sardi** - *Initial work* - [LeandroSardi](https://github.com/leandrosardi)
|
498
|
+
|
499
|
+
## 20. License
|
500
|
+
|
501
|
+
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
|
502
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
BlackStack::Logger.set(
|
4
|
+
nesting_assertion: true,
|
5
|
+
)
|
6
|
+
|
7
|
+
# create a logger
|
8
|
+
l = BlackStack::LocalLogger.new("assertion.log")
|
9
|
+
|
10
|
+
begin
|
11
|
+
l.blank_line
|
12
|
+
l.logs "Looking for number 3... "
|
13
|
+
i = 0
|
14
|
+
while i < 6
|
15
|
+
l.logs "#{i}... "
|
16
|
+
if i == 3
|
17
|
+
#l.yes # --> I missed to close the log line !
|
18
|
+
else
|
19
|
+
l.no
|
20
|
+
end
|
21
|
+
i += 1
|
22
|
+
end
|
23
|
+
l.done
|
24
|
+
rescue => e
|
25
|
+
l.error(e)
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
BlackStack::Logger.set(
|
4
|
+
nesting_assertion: true,
|
5
|
+
)
|
6
|
+
|
7
|
+
# create a logger
|
8
|
+
l = BlackStack::LocalLogger.new("assertion.log")
|
9
|
+
|
10
|
+
begin
|
11
|
+
l.blank_line
|
12
|
+
l.logs "Looking for number 3... "
|
13
|
+
i = 0
|
14
|
+
while i < 6
|
15
|
+
#l.logs "#{i}... " # --> I missed to open the log.
|
16
|
+
if i == 3
|
17
|
+
l.yes
|
18
|
+
else
|
19
|
+
l.no
|
20
|
+
end
|
21
|
+
i += 1
|
22
|
+
end
|
23
|
+
l.done
|
24
|
+
rescue => e
|
25
|
+
l.error(e)
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
BlackStack::Logger.set(
|
4
|
+
nesting_assertion: true,
|
5
|
+
)
|
6
|
+
|
7
|
+
# create a logger
|
8
|
+
l = BlackStack::LocalLogger.new("assertion.log")
|
9
|
+
|
10
|
+
begin
|
11
|
+
l.blank_line
|
12
|
+
#l.logs "Looking for number 3... " # --> I missed to open the log.
|
13
|
+
i = 0
|
14
|
+
while i < 6
|
15
|
+
l.logs "#{i}... "
|
16
|
+
if i == 3
|
17
|
+
l.yes
|
18
|
+
else
|
19
|
+
l.no
|
20
|
+
end
|
21
|
+
i += 1
|
22
|
+
end
|
23
|
+
l.done
|
24
|
+
rescue => e
|
25
|
+
l.error(e)
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
BlackStack::Logger.set(
|
4
|
+
nesting_assertion: true,
|
5
|
+
)
|
6
|
+
|
7
|
+
# create a logger
|
8
|
+
l = BlackStack::LocalLogger.new("assertion.log")
|
9
|
+
|
10
|
+
begin
|
11
|
+
l.blank_line
|
12
|
+
l.logs "Looking for number 3... "
|
13
|
+
i = 0
|
14
|
+
while i < 6
|
15
|
+
l.logs "#{i}... "
|
16
|
+
if i == 3
|
17
|
+
l.yes
|
18
|
+
l.no # --> I closed the same level 2 times by mistake
|
19
|
+
else
|
20
|
+
l.no
|
21
|
+
end
|
22
|
+
i += 1
|
23
|
+
end
|
24
|
+
l.done
|
25
|
+
rescue => e
|
26
|
+
l.error(e)
|
27
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
# create a logger
|
4
|
+
l = BlackStack::LocalLogger.new("examples.log")
|
5
|
+
|
6
|
+
l.blank_line
|
7
|
+
l.log "Example 1:"
|
8
|
+
l.logs "Calculate 1+1... "
|
9
|
+
n = 1 + 1
|
10
|
+
l.done
|
11
|
+
|
12
|
+
l.blank_line
|
13
|
+
l.log "Example 2:"
|
14
|
+
l.logs "Calculate 1+1... "
|
15
|
+
n = 1 + 1
|
16
|
+
l.done(details: n)
|
17
|
+
|
18
|
+
l.blank_line
|
19
|
+
l.log "Example 3:"
|
20
|
+
l.logs "Calculate 4/2... "
|
21
|
+
begin
|
22
|
+
n = 4/2
|
23
|
+
l.done(details: n)
|
24
|
+
rescue => e
|
25
|
+
l.error(e)
|
26
|
+
end
|
27
|
+
|
28
|
+
l.blank_line
|
29
|
+
l.log "Example 4:"
|
30
|
+
l.logs "Calculate 4/0... "
|
31
|
+
begin
|
32
|
+
n = 4/0
|
33
|
+
l.done(details: n)
|
34
|
+
rescue => e
|
35
|
+
l.error(e)
|
36
|
+
end
|
37
|
+
|
38
|
+
l.blank_line
|
39
|
+
l.log "Example 5:"
|
40
|
+
l.logs "Looking for number 3... "
|
41
|
+
i = 0
|
42
|
+
while i < 6
|
43
|
+
l.logs "#{i}... "
|
44
|
+
if i == 3
|
45
|
+
l.yes
|
46
|
+
else
|
47
|
+
l.no
|
48
|
+
end
|
49
|
+
i += 1
|
50
|
+
end
|
51
|
+
l.done
|
52
|
+
|
53
|
+
l.blank_line
|
54
|
+
l.log "Example 6:"
|
55
|
+
l.logs "Skipping odd numbers... "
|
56
|
+
i = 0
|
57
|
+
while i < 6
|
58
|
+
l.logs "#{i}... "
|
59
|
+
if i % 2 == 0
|
60
|
+
l.ok
|
61
|
+
else
|
62
|
+
l.skip
|
63
|
+
end
|
64
|
+
i += 1
|
65
|
+
end
|
66
|
+
l.done
|
67
|
+
|
68
|
+
l.blank_line
|
69
|
+
l.log "Example 7:"
|
70
|
+
l.logs "Skipping odd numbers... "
|
71
|
+
i = 0
|
72
|
+
while i < 6
|
73
|
+
l.logs "#{i}... "
|
74
|
+
if i % 2 == 0
|
75
|
+
l.ok
|
76
|
+
else
|
77
|
+
l.skip(details: 'it is an odd number')
|
78
|
+
end
|
79
|
+
i += 1
|
80
|
+
end
|
81
|
+
l.done
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
BlackStack::Logger.set(
|
4
|
+
min_size: 6*1024, # 6KB bytes
|
5
|
+
max_size: 10*1024, # 10KB bytes
|
6
|
+
show_nesting_level: true,
|
7
|
+
show_nesting_caller: true,
|
8
|
+
colorize: true
|
9
|
+
)
|
10
|
+
|
11
|
+
# create a logger
|
12
|
+
l = BlackStack::LocalLogger.new("max_size.log")
|
13
|
+
|
14
|
+
i=0
|
15
|
+
while i<100000
|
16
|
+
l.log "number:#{i}"
|
17
|
+
i += 1
|
18
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# overwrite the instance methods green, red, blue and yellow of the class String to make them non-effect.
|
2
|
+
# if you require the colorize gem after the logger setup, colors will be activated again.
|
3
|
+
|
4
|
+
require_relative '../lib/simple_cloud_logging'
|
5
|
+
|
6
|
+
# create a logger
|
7
|
+
l = BlackStack::LocalLogger.new("no-colors.log")
|
8
|
+
|
9
|
+
BlackStack::Logger.set(
|
10
|
+
colorize: false,
|
11
|
+
)
|
12
|
+
|
13
|
+
begin
|
14
|
+
l.blank_line
|
15
|
+
l.logs "Looking for number 3... "
|
16
|
+
i = 0
|
17
|
+
while i < 6
|
18
|
+
l.logs "#{i}... "
|
19
|
+
if i == 3
|
20
|
+
l.yes
|
21
|
+
else
|
22
|
+
l.no
|
23
|
+
end
|
24
|
+
i += 1
|
25
|
+
end
|
26
|
+
l.done
|
27
|
+
rescue => e
|
28
|
+
l.error(e)
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
# create a logger
|
4
|
+
l = BlackStack::LocalLogger.new("show_caller.log")
|
5
|
+
|
6
|
+
BlackStack::Logger.set(
|
7
|
+
show_nesting_caller: true,
|
8
|
+
)
|
9
|
+
|
10
|
+
begin
|
11
|
+
l.blank_line
|
12
|
+
l.logs "Looking for number 3... "
|
13
|
+
i = 0
|
14
|
+
while i < 6
|
15
|
+
l.logs "#{i}... "
|
16
|
+
if i == 3
|
17
|
+
l.yes
|
18
|
+
else
|
19
|
+
l.no
|
20
|
+
end
|
21
|
+
i += 1
|
22
|
+
end
|
23
|
+
l.done
|
24
|
+
rescue => e
|
25
|
+
l.error(e)
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../lib/simple_cloud_logging'
|
2
|
+
|
3
|
+
# create a logger
|
4
|
+
l = BlackStack::LocalLogger.new("show_level.log")
|
5
|
+
|
6
|
+
BlackStack::Logger.set(
|
7
|
+
show_nesting_level: true,
|
8
|
+
)
|
9
|
+
|
10
|
+
begin
|
11
|
+
l.blank_line
|
12
|
+
l.logs "Looking for number 3... "
|
13
|
+
i = 0
|
14
|
+
while i < 6
|
15
|
+
l.logs "#{i}... "
|
16
|
+
if i == 3
|
17
|
+
l.yes
|
18
|
+
else
|
19
|
+
l.no
|
20
|
+
end
|
21
|
+
i += 1
|
22
|
+
end
|
23
|
+
l.done
|
24
|
+
rescue => e
|
25
|
+
l.error(e)
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_cloud_logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leandro Daniel Sardi
|
@@ -56,6 +56,16 @@ executables: []
|
|
56
56
|
extensions: []
|
57
57
|
extra_rdoc_files: []
|
58
58
|
files:
|
59
|
+
- README.md
|
60
|
+
- examples/assertion1.rb
|
61
|
+
- examples/assertion2.rb
|
62
|
+
- examples/assertion3.rb
|
63
|
+
- examples/assertion4.rb
|
64
|
+
- examples/examples.rb
|
65
|
+
- examples/max_size.rb
|
66
|
+
- examples/no-colors.rb
|
67
|
+
- examples/show_caller.rb
|
68
|
+
- examples/show_level.rb
|
59
69
|
- lib/baselogger.rb
|
60
70
|
- lib/dummylogger.rb
|
61
71
|
- lib/locallogger.rb
|