@@ -12,7 +12,7 @@ import ..LogCompose: logcompose, log_min_level
1212
1313logcompose (:: Type{Logging.NullLogger} , config:: Dict{String,Any} , logger_config:: Dict{String,Any} ) = Logging. NullLogger ()
1414
15- function logcompose (:: Type{T } , config:: Dict{String,Any} , logger_config:: Dict{String,Any} ) where {T <: Union{Logging.SimpleLogger, Logging.ConsoleLogger} }
15+ function logcompose (:: Type{Logging.SimpleLogger } , config:: Dict{String,Any} , logger_config:: Dict{String,Any} )
1616 level = log_min_level (logger_config, " Info" )
1717
1818 streamname = strip (get (logger_config, " stream" , " stdout" ))
@@ -22,7 +22,34 @@ function logcompose(::Type{T}, config::Dict{String,Any}, logger_config::Dict{Str
2222 streamname == " stderr" ? stderr :
2323 open (streamname, " a+" )
2424
25- T (stream, level)
25+ Logging. SimpleLogger (stream, level)
26+ end
27+
28+ function logcompose (:: Type{Logging.ConsoleLogger} , config:: Dict{String,Any} , logger_config:: Dict{String,Any} )
29+ level = log_min_level (logger_config, " Info" )
30+
31+ streamname = strip (get (logger_config, " stream" , " stdout" ))
32+ @assert ! isempty (streamname)
33+
34+ stream = streamname == " stdout" ? stdout :
35+ streamname == " stderr" ? stderr :
36+ open (streamname, " a+" )
37+
38+ color = get (logger_config, " color" , nothing )
39+ color === nothing || (stream = IOContext (stream, :color => color))
40+
41+ displaysize = get (logger_config, " displaysize" , nothing )
42+ if displaysize != = nothing
43+ if ! (displaysize isa AbstractVector{Int}) || length (displaysize) != 2
44+ error (" Expected [height,width] but got displaysize=$displaysize " )
45+ end
46+ stream = IOContext (stream, :displaysize => Tuple (displaysize))
47+ end
48+
49+ show_limited = get (logger_config, " show_limited" , true )
50+ color isa Bool || error (" Expected boolean but got show_limited=$show_limited " )
51+
52+ Logging. ConsoleLogger (stream, level; show_limited= show_limited)
2653end
2754
2855end # module Connectors
0 commit comments