@@ -15,49 +15,46 @@ vlogmacrodocs = """
15
15
16
16
"Verbose" logging macros. Drop in replacements of standard logging macros, but an
17
17
additional verbosity level `N` is passed to indicate differing verbosity levels
18
- for a given log level. The verbosity argument is passed as the `group` argument
19
- to the core logging logic, so care should be taken if other loggers are being used
20
- that also use the group argument.
21
- Note: by default group is passed as the source file, however it is poor practice to rely on this in the first place.
22
- Instead use the file argument for that.
18
+ for a given log level. The verbosity argument is subtracted from the base log level when passed down
19
+ to the core logging logic, so `@debugv 1 msg` will essentially call `@logmsg Debug-1 msg`.
23
20
24
- An `LoggingExtras.EarlyFilteredLogger `can then be used to filter on the `group ` argument.
21
+ An `LoggingExtras.LevelOverrideLogger `can then be used to filter on the `level ` argument.
25
22
For convenience, the
26
23
[`LoggintExtras.with(f; level, verbosity)`](@ref) function is provided to temporarily
27
- wrap the current logger with a level/ verbosity filter while `f` is executed.
24
+ wrap the current logger with a log level and verbosity subtracted to filter while `f` is executed.
28
25
"""
29
26
30
27
macro debugv (verbosity:: Int , msg, exs... )
31
28
return restore_callsite_source_position! (
32
- esc (:($ Base. @debug $ msg _group = $ verbosity $ (exs... ))),
29
+ esc (:($ Base. @logmsg (Logging . Debug - $ verbosity) $ msg $ (exs... ))),
33
30
__source__,
34
31
)
35
32
end
36
33
37
34
macro infov (verbosity:: Int , msg, exs... )
38
35
return restore_callsite_source_position! (
39
- esc (:($ Base. @info $ msg _group = $ verbosity $ (exs... ))),
36
+ esc (:($ Base. @logmsg (Logging . Info - $ verbosity) $ msg $ (exs... ))),
40
37
__source__,
41
38
)
42
39
end
43
40
44
41
macro warnv (verbosity:: Int , msg, exs... )
45
42
return restore_callsite_source_position! (
46
- esc (:($ Base. @warn $ msg _group = $ verbosity $ (exs... ))),
43
+ esc (:($ Base. @logmsg (Logging . Warn - $ verbosity) $ msg $ (exs... ))),
47
44
__source__,
48
45
)
49
46
end
50
47
51
48
macro errorv (verbosity:: Int , msg, exs... )
52
49
return restore_callsite_source_position! (
53
- esc (:($ Base. @error $ msg _group = $ verbosity $ (exs... ))),
50
+ esc (:($ Base. @logmsg (Logging . Error - $ verbosity) $ msg $ (exs... ))),
54
51
__source__,
55
52
)
56
53
end
57
54
58
55
macro logmsgv (verbosity:: Int , level, msg, exs... )
59
56
return restore_callsite_source_position! (
60
- esc (:($ Base. @logmsg $ level $ msg _group = $ verbosity $ (exs... ))),
57
+ esc (:($ Base. @logmsg ( $ level - $ verbosity) $ msg $ (exs... ))),
61
58
__source__,
62
59
)
63
60
end
69
66
@eval @doc $ vlogmacrodocs :(@errorv )
70
67
71
68
"""
72
- LoggingExtras.with(f; level=Info, verbosity=0 )
69
+ LoggingExtras.with(f; level=Info)
73
70
74
71
Convenience function like `Logging.with_logger` to temporarily wrap
75
- the current logger with a level/verbosity filter while `f` is executed.
72
+ the current logger with a level filter while `f` is executed.
76
73
That is, the current logger will still be used for actual logging, but
77
- log messages will first be checked that they meet the `level` and
78
- `verbosity` levels before being passed on to be logged.
74
+ log messages will first be checked that they meet the `level`
75
+ log level before being passed on to be logged.
79
76
"""
80
- function with (f; level:: Union{Int, LogLevel} = Info, verbosity:: Int = 0 )
81
- with_logger (EarlyFilteredLogger (
82
- args -> ! (args. group isa Int) || verbosity >= args. group,
83
- LevelOverrideLogger (level, current_logger ()))
84
- ) do
85
- f ()
77
+ function with (f; level:: Union{Int, LogLevel} = Info, verbosity:: Integer = 0 )
78
+ lvl = Base. CoreLogging. _min_enabled_level[]
79
+ try
80
+ # by default, this global filter is Debug, but for debug logging
81
+ # we want to enable sub-Debug levels
82
+ Base. CoreLogging. _min_enabled_level[] = BelowMinLevel
83
+ with_logger (LevelOverrideLogger (level - verbosity, current_logger ())) do
84
+ f ()
85
+ end
86
+ finally
87
+ Base. CoreLogging. _min_enabled_level[] = lvl
86
88
end
87
89
end
0 commit comments