The GGCE logger

The GGCE logger is an MPI-aware logging framework designed to expose the most important information to the user at all times. We use the wonderful logging package Loguru for all of our logging needs, and utilize six logging levels. In general, we follow the conventions for logging levels as outlined here.

Logging levels

Debug

This stream used for debugging purposes only. Generally, you will not need to use the debugging feature of GGCE.

Warning

Note that all ranks pipe to their own debug stream during MPI jobs. This can get quite verbose if not properly used.

Info and Success

A general information pipeline. Used for generic messages. Both the info and success logging levels are only printed for the main MPI rank.

Warning

Generally used to indicate that something happened the user should be aware of. However, warnings are _not_ something to be concerned about. Warnings can always be safely ignored, but they should be noted as more important than information piped to the info and success streams.

Error

Errors indicate a serious issue, but not one that will necessarily terminate the program. Errors can sometimes be ignored, but should never be disregarded.

Critical

If GGCE throws a critical error the program will almost certainly terminate. Critical errors also throw a sys.exit(1) exception or COMM.Abort() depending on if GGCE is running in MPI mode or not.

The GGCE logger context manager

By default, the GGCE logger will print info and above. However, one can easily control the logging level dynamically using our context managers in ggce/logger.py.