Logging MessagesΒΆ
Logging is built into GloMPO and you can optionally configure its logging capability before running the manager to track its progress. Without this manual configuration, no progress or status messages will print at all. The logging system can be used to debug the code, but is most helpful in tracking execution through the program by sending logging.INFO level messages and above to sys.stdout.
The logging provided in this way is distinct from the summary files provided at the end of the GloMPO run which are regulated by GloMPOManager.summary_files.
The GloMPO logger is called 'glompo' and components have individual loggers too, allowing filtering if desired. These are: 'glompo.manager', 'glompo.exitcondition', 'glompo.logger', 'glompo.generator', 'glompo.stopper', 'glompo.selector' and 'glompo.optimizers'. Logging from optimizers can be accessed collectively via 'glompo.optimizers' or individually for each optimizer via 'glompo.optimizers.optX' where 'X' is the ID number of the optimizer (see SplitOptimizerLogs for the logging.Filter needed to achieve this).
Within user-written plug-ins, such as custom stoppers and exit conditions, a logger attribute (instance of logging.Logger) is present and can be used to log behavior. See the Python documentation for the logging package for details on how to customize this functionality.
An example configuration may look like:
formatter = logging.Formatter("%(asctime)s : %(levelname)s : %(lineno)d : %(name)s :: %(message)s")
handler = logging.FileHandler('glompo.opt_log', 'w')
handler.setFormatter(formatter)
logger = logging.getLogger('glompo')
logger.addHandler(handler)
logger.setLevel('INFO')
manager = GloMPOManager(...)
manager.start_manager(...)