v / vlib / log / default_test.v
38 lines · 35 sloc · 1007 bytes · 4ceb550e8879880c7f57ce33ee37f5a953b8241f
Raw
1import log
2import time
3
4fn test_default_log_instance() {
5 println(@FN + ' start')
6 log.info('info')
7 log.warn('warn')
8 log.error('error')
9 log.debug('no output for debug')
10 println('^^^ there should be no `no output for debug` shown above')
11 log.set_level(.debug)
12 log.debug('debug now')
13 println('^^^ there should be `debug now` shown above')
14 log.set_level(log.level_from_tag('INFO') or { log.Level.disabled })
15 log.info('info again')
16 log.debug('no output for debug')
17 log.set_level(log.level_from_tag('') or { log.Level.disabled })
18 log.error('no output anymore')
19 println('^^^ there should be no `no output anymore` shown above')
20 println(@FN + ' end')
21}
22
23fn log_messages(tidx int) {
24 time.sleep(2 * time.millisecond)
25 for i in 0 .. 3 {
26 log.debug('hi from thread ${tidx}')
27 }
28}
29
30fn test_default_log_instance_used_in_multiple_threads() {
31 eprintln('\n${@METHOD} start')
32 log.set_level(.debug)
33 mut threads := []thread{}
34 for tidx in 0 .. 3 {
35 threads << spawn log_messages(tidx)
36 }
37 threads.wait()
38}
39