Logging

Symbolica uses logging with tracing in Rust instead of writing information directly to the screen. This can help if the output of Symbolica is not read by a human as the program runs, or if the logs should be parsed/analyzed for later use.

To override the default logger, perform the following operations:

Use the logging module:

from symbolica import *
import logging

use_custom_logging() # log using the logging module

FORMAT = '%(levelname)s %(name)s %(asctime)-15s %(filename)s:%(lineno)d %(message)s'
logging.basicConfig(format=FORMAT)
logging.getLogger('symbolica').setLevel(logging.INFO)
fn main() {
    symbolica::GLOBAL_SETTINGS
        .initialize_tracing
        .store(false, std::sync::atomic::Ordering::Relaxed);

    // now install your own tracing_subscriber
}