Skip to content

Commit

Permalink
Merge pull request #95 from invenia/ed/propaconfig
Browse files Browse the repository at this point in the history
Allow setting logger propagation in config!
  • Loading branch information
iamed2 authored Aug 4, 2018
2 parents 4ec67cb + a24f729 commit 441189d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/config.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ that prints to stdout.
* `recursive`: whether or not to recursive set the level of all child loggers.
* `substitute`: whether or not to substitute the global logger with Memento
(only supported on julia 0.7).
* `propagate`: whether the logger should also send messages to parent loggers (default: true)
# Returns
* `Logger`: the root logger.
* `Logger`: the logger passed in, or the root logger.
"""
config!(level::AbstractString; kwargs...) = config!(Logger("root"), level; kwargs...)

Expand All @@ -30,10 +31,11 @@ end
function config!(
logger::Logger, level::AbstractString;
fmt::AbstractString=DEFAULT_FMT_STRING, levels=_log_levels, colorized=true,
recursive=false, substitute=false
recursive=false, substitute=false, propagate=true
)
logger.levels = levels
setlevel!(logger, level; recursive=recursive)
setpropagating!(logger, propagate)
handler = DefaultHandler(
stdout,
DefaultFormatter(fmt), Dict{Symbol, Any}(:is_colorized => colorized)
Expand Down
8 changes: 8 additions & 0 deletions test/loggers.jl
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,16 @@
@test length(gethandlers(my_logger)) == 1
@test length(gethandlers(str_logger)) == 1

@test ispropagating(my_logger)
@test ispropagating(str_logger)

@test getlevel(root_logger) == getlevel(my_logger) == getlevel(str_logger)

non_prop_logger = Memento.config!(
getlogger("NonPropLogger"), "info"; propagate=false
)
@test !ispropagating(non_prop_logger)

Memento.config("notice"; recursive=true)
@test all(l -> getlevel(l) == "notice", values(Memento._loggers))
end
Expand Down

0 comments on commit 441189d

Please sign in to comment.