Skip to content

Commit 37a20d3

Browse files
committed
add group to macro, add simple logger
1 parent c1f993e commit 37a20d3

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

src/verbosity.jl

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ function emit_message(message::String, verbose::V,
219219
level = message_level(verbose, option, group)
220220

221221
if !isnothing(level)
222-
Base.@logmsg level message _file=file _line=line _module=_module
222+
Base.@logmsg level message _file=file _line=line _module=_module _group = group
223223
end
224224
end
225225

@@ -257,3 +257,39 @@ macro SciMLMessage(f_or_message, verb, option, group)
257257
$(esc(f_or_message)), $(esc(verb)), $option, $group, $file, $line, $_module))
258258
end
259259

260+
function SciMLLogger(; info_repl = true, warn_repl = true, error_repl = true,
261+
info_file = nothing, warn_file = nothing, error_file = nothing)
262+
info_sink = isnothing(info_file) ? NullLogger() : FileLogger(info_file)
263+
warn_sink = isnothing(warn_file) ? NullLogger() : FileLogger(warn_file)
264+
error_sink = isnothing(error_file) ? NullLogger() : FileLogger(error_file)
265+
266+
repl_filter = EarlyFilteredLogger(current_logger()) do log
267+
if log.level == Logging.Info && info_repl
268+
return true
269+
end
270+
271+
if log.level == Logging.Warn && warn_repl
272+
return true
273+
end
274+
275+
if log.level == Logging.Error && error_repl
276+
return true
277+
end
278+
279+
return false
280+
end
281+
282+
info_filter = EarlyFilteredLogger(info_sink) do log
283+
log.level == Logging.Info
284+
end
285+
286+
warn_filter = EarlyFilteredLogger(warn_sink) do log
287+
log.level == Logging.Warn
288+
end
289+
290+
error_filter = EarlyFilteredLogger(error_sink) do log
291+
log.level == Logging.Error
292+
end
293+
294+
TeeLogger(repl_filter, info_filter, warn_filter, error_filter)
295+
end

0 commit comments

Comments
 (0)