Skip to content

Commit 6526084

Browse files
authored
Merge pull request #30 from fredrikekre/fe/iostream
Allow passing an IOStream to FileLogger.
2 parents e949dad + c6d10c7 commit 6526084

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "LoggingExtras"
22
uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36"
33
authors = ["Lyndon White <oxinabox@ucc.asn.au>"]
4-
version = "0.4.0"
4+
version = "0.4.1"
55

66
[compat]
77
julia = "0.7, 1"

src/filelogger.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ struct FileLogger <: AbstractLogger
33
always_flush::Bool
44
end
55

6-
function FileLogger(path; append=false, always_flush=true)
6+
function FileLogger(path; append=false, kwargs...)
77
filehandle = open(path, append ? "a" : "w")
8-
FileLogger(SimpleLogger(filehandle, BelowMinLevel), always_flush)
8+
FileLogger(filehandle; kwargs...)
99
end
1010

11+
function FileLogger(filehandle::IOStream; always_flush=true)
12+
FileLogger(SimpleLogger(filehandle, BelowMinLevel), always_flush)
13+
end
1114

1215
function handle_message(filelogger::FileLogger, args...; kwargs...)
1316
handle_message(filelogger.logger, args...; kwargs...)

test/runtests.jl

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,21 @@ end
3333

3434
@testset "File" begin
3535
mktempdir() do dir
36-
filepath = joinpath(dir, "log")
37-
with_logger(FileLogger(filepath)) do
38-
@info "first"
39-
@warn "second"
40-
@info "third"
36+
for (filepath, sink) in [
37+
(f = joinpath(dir, "log"); (f, f)), # Filepath
38+
(f = joinpath(dir, "log_io"); (f, open(f, "w"))), # IOStream
39+
]
40+
with_logger(FileLogger(sink)) do
41+
@info "first"
42+
@warn "second"
43+
@info "third"
44+
end
45+
sink isa IOStream && close(sink)
46+
logtext = read(filepath, String)
47+
@test occursin("first", logtext)
48+
@test occursin("second", logtext)
49+
@test occursin("third", logtext)
4150
end
42-
logtext = String(read(filepath))
43-
@test occursin("first", logtext)
44-
@test occursin("second", logtext)
45-
@test occursin("third", logtext)
4651
end
4752
end
4853

0 commit comments

Comments
 (0)