dockonsurf / modules / config_log.py @ cf980c86
Historique | Voir | Annoter | Télécharger (1,64 ko)
1 | 4e82c425 | Carles Martí | """Module for the configuration of how and what is recorded in the 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 | 4e82c425 | Carles Martí | """Sets up the recording of exceptions on the log file
|
9 | 4e82c425 | Carles Martí |
|
10 | 4e82c425 | Carles Martí | @param exc_type: Type of exception
|
11 | 4e82c425 | Carles Martí | @param exc_value: Value of the exception
|
12 | 4e82c425 | Carles Martí | @param exc_tb:
|
13 | 4e82c425 | Carles Martí | @return: None
|
14 | 4e82c425 | Carles Martí | """
|
15 | 07bba5bb | Carles Martí | if issubclass(exc_type, KeyboardInterrupt): |
16 | 07bba5bb | Carles Martí | sys.__excepthook__(exc_type, exc_value, exc_tb) |
17 | 07bba5bb | Carles Martí | return
|
18 | 07bba5bb | Carles Martí | logger = logging.getLogger('DockOnSurf')
|
19 | 07bba5bb | Carles Martí | logger.error("", exc_info=(exc_type, exc_value, exc_tb))
|
20 | 07bba5bb | Carles Martí | |
21 | 07bba5bb | Carles Martí | |
22 | bf33f563 | Carles Martí | def log_warning(message, *args, **kwargs): |
23 | 4e82c425 | Carles Martí | """Sets up the recording of warnings on the log file
|
24 | 4e82c425 | Carles Martí |
|
25 | 4e82c425 | Carles Martí | @param message: Warning message.
|
26 | 4e82c425 | Carles Martí | @param args: Additional arguments.
|
27 | 4e82c425 | Carles Martí | @param kwargs: Additional keyword arguments.
|
28 | 4e82c425 | Carles Martí | @return: None
|
29 | 4e82c425 | Carles Martí | """
|
30 | bf33f563 | Carles Martí | logger = logging.getLogger('DockOnSurf')
|
31 | bf33f563 | Carles Martí | logger.warning(" ".join(f"{message}".split())) |
32 | bf33f563 | Carles Martí | |
33 | 78fcb188 | Carles Martí | |
34 | 4e82c425 | Carles Martí | def config_log(label): # TODO Format log to break long lines (after column 80). |
35 | 4e82c425 | Carles Martí | """Configures the logger to record all calculation events on a log file.
|
36 | 4e82c425 | Carles Martí |
|
37 | 4e82c425 | Carles Martí | @param label: Label of the logger to be used.
|
38 | 4e82c425 | Carles Martí | @return: The logger object.
|
39 | 4e82c425 | Carles Martí | """
|
40 | 9f7bb440 | Carles | logger = logging.getLogger(label) |
41 | 9f7bb440 | Carles | logger.setLevel(logging.INFO) |
42 | 78fcb188 | Carles Martí | |
43 | 9f7bb440 | Carles | log_handler = logging.FileHandler('dockonsurf.log', mode='w') |
44 | 9f7bb440 | Carles | log_handler.setLevel(logging.INFO) |
45 | 9f7bb440 | Carles | log_format = logging.Formatter(fmt='%(asctime)s-%(levelname)s: %(message)s',
|
46 | 9f7bb440 | Carles | datefmt='%d-%b-%y %H:%M:%S')
|
47 | 9f7bb440 | Carles | log_handler.setFormatter(log_format) |
48 | 78fcb188 | Carles Martí | |
49 | 9f7bb440 | Carles | logger.addHandler(log_handler) |
50 | bf33f563 | Carles Martí | |
51 | 07bba5bb | Carles Martí | sys.excepthook = log_exception |
52 | bf33f563 | Carles Martí | warnings.showwarning = log_warning |
53 | 78fcb188 | Carles Martí | |
54 | 9f7bb440 | Carles | return logger |