Statistiques
| Branche: | Tag: | Révision :

dockonsurf / modules / config_log.py @ 082685ad

Historique | Voir | Annoter | Télécharger (1,08 ko)

1 0e83e6a6 Carles
"""Configures the logger to record all calculation events on a log file."""
2 07bba5bb Carles Martí
import sys
3 9f7bb440 Carles
import logging
4 bf33f563 Carles Martí
import warnings
5 9f7bb440 Carles
6 9f7bb440 Carles
7 07bba5bb Carles Martí
def log_exception(exc_type, exc_value, exc_tb):
8 07bba5bb Carles Martí
    if issubclass(exc_type, KeyboardInterrupt):
9 07bba5bb Carles Martí
        sys.__excepthook__(exc_type, exc_value, exc_tb)
10 07bba5bb Carles Martí
        return
11 07bba5bb Carles Martí
    logger = logging.getLogger('DockOnSurf')
12 07bba5bb Carles Martí
    logger.error("", exc_info=(exc_type, exc_value, exc_tb))
13 07bba5bb Carles Martí
14 07bba5bb Carles Martí
15 bf33f563 Carles Martí
def log_warning(message, *args, **kwargs):
16 bf33f563 Carles Martí
    logger = logging.getLogger('DockOnSurf')
17 bf33f563 Carles Martí
    logger.warning(" ".join(f"{message}".split()))
18 bf33f563 Carles Martí
19 78fcb188 Carles Martí
20 bf33f563 Carles Martí
def config_log(label):  # TODO Format log to break line after column 80.
21 9f7bb440 Carles
    logger = logging.getLogger(label)
22 9f7bb440 Carles
    logger.setLevel(logging.INFO)
23 78fcb188 Carles Martí
24 9f7bb440 Carles
    log_handler = logging.FileHandler('dockonsurf.log', mode='w')
25 9f7bb440 Carles
    log_handler.setLevel(logging.INFO)
26 9f7bb440 Carles
    log_format = logging.Formatter(fmt='%(asctime)s-%(levelname)s: %(message)s',
27 9f7bb440 Carles
                                   datefmt='%d-%b-%y %H:%M:%S')
28 9f7bb440 Carles
    log_handler.setFormatter(log_format)
29 78fcb188 Carles Martí
30 9f7bb440 Carles
    logger.addHandler(log_handler)
31 bf33f563 Carles Martí
32 07bba5bb Carles Martí
    sys.excepthook = log_exception
33 bf33f563 Carles Martí
    warnings.showwarning = log_warning
34 78fcb188 Carles Martí
35 9f7bb440 Carles
    return logger