From e04066cdbf43f12356b104465e90fcb2cc90e83e Mon Sep 17 00:00:00 2001 From: Chris Foster Date: Sun, 5 Nov 2017 16:22:46 +1000 Subject: [PATCH] Port more MicroLogging changes - remove log config from core --- base/logging.jl | 60 +++++++++++-------------------------------------- 1 file changed, 13 insertions(+), 47 deletions(-) diff --git a/base/logging.jl b/base/logging.jl index 2cd500283c9c8..3c1240cdd7dba 100644 --- a/base/logging.jl +++ b/base/logging.jl @@ -433,64 +433,30 @@ current_logger() = current_logstate().logger """ SimpleLogger(stream=STDERR, min_level=Info) -Simplistic logger for logging all messages with level not less than `min_level` -to `stream`. +Simplistic logger for logging all messages with level greater than or equal to +`min_level` to `stream`. """ struct SimpleLogger <: AbstractLogger stream::IO min_level::LogLevel end -SimpleLogger(stream::IO=STDERR, level=Info) = SimpleLogger(stream, parse_level(level)) - -function configure_logging(logger::SimpleLogger; min_level=Info) - SimpleLogger(logger.stream, parse_level(min_level)) -end +SimpleLogger(stream::IO=STDERR, level=Info) = SimpleLogger(stream, level) shouldlog(logger::SimpleLogger, level, args...) = !(level < logger.min_level) min_enabled_level(logger::SimpleLogger) = logger.min_level -function handle_message(logger::SimpleLogger, level, msg, _module, group, id, +function handle_message(logger::SimpleLogger, level, message, _module, group, id, filepath, line; kwargs...) - println(logger.stream, "$level [$(basename(String(filepath))):$line]: $msg") -end - - -#------------------------------------------------------------------------------- -# Logger configuration - -parse_level(level) = level -parse_level(level::String) = parse_level(Symbol(lowercase(level))) -function parse_level(level::Symbol) - if level == :belowminlevel return BelowMinLevel - elseif level == :debug return Debug - elseif level == :info return Info - elseif level == :warn return Warn - elseif level == :error return Error - elseif level == :abovemaxlevel return AboveMaxLevel - else - throw(ArgumentError("Unknown log level $level")) + levelstr = string(level) + color = level < Info ? :blue : + level < Warn ? :cyan : + level < Error ? :yellow : :red + print_with_color(color, logger.stream, first(levelstr), "- ", bold=true) + print(logger.stream, replace(message, '\n', "\n| ")) + println(logger.stream, " -", levelstr, ":", _module, ":", basename(filepath), ":", line) + for (key,val) in kwargs + println(logger.stream, "| ", key, " = ", val) end end -""" - configure_logging(args...; kwargs...) - -Call `configure_logging` with the current logger, and update cached log -filtering information. -""" -function configure_logging(args...; kwargs...) - logger = configure_logging(current_logger(), args...; kwargs...)::AbstractLogger - if haskey(task_local_storage(), :LOGGER_STATE) - task_local_storage()[:LOGGER_STATE] = LogState(logger) - else - global _global_logstate = LogState(logger) - end - logger -end - -configure_logging(::AbstractLogger, args...; kwargs...) = - throw(ArgumentError("No configure_logging method matches the provided arguments.")) - - -init_logging() = global_logger(SimpleLogger(STDERR))