Skip to content

Commit fd2328c

Browse files
committed
Switch to using Tuples in TeeLogger
1 parent 4c6ed50 commit fd2328c

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

src/tee.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
struct TeeLogger <: AbstractLogger
2-
loggers::Vector{AbstractLogger}
1+
struct TeeLogger{T<:NTuple{<:Any, AbstractLogger}} <: AbstractLogger
2+
loggers::T
33
end
44

55

@@ -15,7 +15,6 @@ to include the global logger, do:
1515
`TeeLogger(global_logger(), loggers...)`
1616
"""
1717
function TeeLogger(loggers::Vararg{AbstractLogger})
18-
loggers = Vector{AbstractLogger}(collect(loggers))
1918
return TeeLogger(loggers)
2019
end
2120

test/runtests.jl

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,33 @@
11
using LoggingExtras
22
using Test
3+
using Test: collect_test_logs, TestLogger
4+
35
using Base.CoreLogging
46
using Base.CoreLogging: BelowMinLevel, Debug, Info, Warn, Error
57

6-
using Test: collect_test_logs, TestLogger
78

89
@testset "Tee" begin
9-
testlogger_info = TestLogger(min_level=Info)
10-
testlogger_warn = TestLogger(min_level=Warn)
10+
@testset "contructor" begin
11+
@testset "mixed types" begin
12+
@test TeeLogger(TestLogger(), NullLogger()) isa TeeLogger
13+
end
1114

12-
with_logger(TeeLogger(testlogger_warn, testlogger_info)) do
13-
@info "info1"
14-
@warn "warn1"
15-
@info "info2"
15+
@testset "errors if given nonloggers" begin
16+
@test_throws Exception TeeLogger(stdout, stderr)
17+
end
18+
end
19+
@testset "basic use with compositional levels" begin
20+
testlogger_info = TestLogger(min_level=Info)
21+
testlogger_warn = TestLogger(min_level=Warn)
22+
23+
with_logger(TeeLogger(testlogger_warn, testlogger_info)) do
24+
@info "info1"
25+
@warn "warn1"
26+
@info "info2"
27+
end
28+
@test length(testlogger_info.logs) == 3
29+
@test length(testlogger_warn.logs) == 1
1630
end
17-
@test length(testlogger_info.logs) == 3
18-
@test length(testlogger_warn.logs) == 1
1931
end
2032

2133

0 commit comments

Comments
 (0)