Skip to content

Commit b9b32ee

Browse files
committed
deprecate old FilteredLogger
1 parent 5f81447 commit b9b32ee

File tree

3 files changed

+65
-15
lines changed

3 files changed

+65
-15
lines changed

src/LoggingExtras.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ include("demuxlogger.jl")
1515
include("filteredlogger.jl")
1616
include("filelogger.jl")
1717

18+
include("deprecated.jl")
19+
1820
end # module

src/deprecated.jl

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
2+
"""
3+
FilteredLogger(filter, logger)
4+
5+
Wraps `logger` in a filter.
6+
While loggers intrinsictally have in built filtering mechanisms.
7+
Wrapping it in a FilterLogger allows for extract control,
8+
at the cost of a bit of overhead.
9+
10+
The `filter` should be a function that returns a boolean.
11+
`true` if the message should be logged and `false` if not.
12+
It should take as inputs:
13+
`(level, message, _module, group, id, file, line; kwargs...)`
14+
15+
These argument come from the logging macro (@info`, `@warn` etc).
16+
17+
* `level::LogLevel` Warn, Info, etc,
18+
* `message::String` the message to be logged
19+
* `_module::Module` can be used to specify a different originating module from
20+
the source location of the message.
21+
* `group::Symbol` can be used to override the message group (this is
22+
normally derived from the base name of the source file).
23+
* `id::Symbol` can be used to override the automatically generated unique
24+
message identifier. This is useful if you need to very closely associate
25+
messages generated on different source lines.
26+
* `file::String` and `line::Int` can be used to override the apparent
27+
source location of a log message.
28+
* `kwargs...` any keyword or positional arguments to the logging macro.
29+
"""
30+
struct FilteredLogger{T <: AbstractLogger, F} <: AbstractLogger
31+
filter::F
32+
logger::T
33+
end
34+
35+
36+
function handle_message(filteredlogger::FilteredLogger, level, message, _module, group, id, file, line; kwargs...)
37+
if filteredlogger.filter(level, message, _module, group, id, file, line; kwargs...)
38+
handle_message(filteredlogger.logger, level, message, _module, group, id, file, line; kwargs...)
39+
end
40+
end
41+
42+
shouldlog(filteredlogger::FilteredLogger, level, _module, group, id) = shouldlog(filteredlogger.logger, level, _module, group, id)
43+
min_enabled_level(filteredlogger::FilteredLogger) = min_enabled_level(filteredlogger.logger)
44+
catch_exceptions(filteredlogger::FilteredLogger) = catch_exceptions(filteredlogger.logger)

test/runtests.jl

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,25 @@ using Test: collect_test_logs, TestLogger
2020

2121
end
2222

23+
24+
@testset "File" begin
25+
mktempdir() do dir
26+
filepath = joinpath(dir, "log")
27+
with_logger(FileLogger(filepath)) do
28+
@info "first"
29+
@warn "second"
30+
@info "third"
31+
end
32+
logtext = String(read(filepath))
33+
@test occursin("first", logtext)
34+
@test occursin("second", logtext)
35+
@test occursin("third", logtext)
36+
end
37+
end
38+
39+
40+
41+
# Deprecated
2342
@testset "Filter" begin
2443
testlogger = TestLogger()
2544
yodawg_filter(lvl, msg, args...; kwargs...) = startswith(msg, "Yo Dawg!")
@@ -36,18 +55,3 @@ end
3655

3756
end
3857

39-
40-
@testset "File" begin
41-
mktempdir() do dir
42-
filepath = joinpath(dir, "log")
43-
with_logger(FileLogger(filepath)) do
44-
@info "first"
45-
@warn "second"
46-
@info "third"
47-
end
48-
logtext = String(read(filepath))
49-
@test occursin("first", logtext)
50-
@test occursin("second", logtext)
51-
@test occursin("third", logtext)
52-
end
53-
end

0 commit comments

Comments
 (0)