Conversion Utilities

SciMLLogging provides utility functions to convert message levels to common formats used by other packages.

Integer Conversion

SciMLLogging.verbosity_to_int — Function
verbosity_to_int(verb::MessageLevel)

Convert a MessageLevel to its integer value.

This is useful when integrating with APIs that represent verbosity as an integer or integer-backed enum.

Arguments

  • verb: Message level to convert.

Returns

The integer severity for verb.

Examples

using SciMLLogging

verbosity_to_int(Silent)           # returns 0
verbosity_to_int(InfoLevel)        # returns 2
verbosity_to_int(MessageLevel(10)) # returns 10
source

Boolean Conversion

SciMLLogging.verbosity_to_bool — Function
verbosity_to_bool(verb::MessageLevel)

Convert a MessageLevel to a boolean verbosity flag.

Silent maps to false; every other message level maps to true.

Arguments

  • verb: Message level to convert.

Returns

true when verb emits messages, and false when it is Silent.

Examples

using SciMLLogging

verbosity_to_bool(Silent)       # returns false
verbosity_to_bool(WarnLevel)    # returns true
verbosity_to_bool(MessageLevel(5))
source

Usage Examples

Integrating with Integer-Based Packages

# Package that expects integer verbosity levels
function external_solver(problem; verbosity_level = 0)
    if verbosity_level >= 1
        println("Starting solver...")
    end
    # ...
end

# Use with SciMLLogging
verbose_spec = MyPackageVerbosity(Standard())
level = verbosity_to_int(verbose_spec.progress)
result = external_solver(problem, verbosity_level = level)

Integrating with Boolean-Based Packages

# Package that expects boolean verbosity
function simple_algorithm(data; verbose = false)
    if verbose
        println("Processing data...")
    end
    # ...
end

# Use with SciMLLogging
verbose_spec = MyPackageVerbosity(Standard())
is_verbose = verbosity_to_bool(verbose_spec.progress)
result = simple_algorithm(data, verbose = is_verbose)