| Conditions | 1 |
| Total Lines | 39 |
| Code Lines | 13 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | """Module for logger.""" |
||
| 7 | def get(name: str) -> logging.Logger: |
||
| 8 | """ |
||
| 9 | Configure the logger with formatter and handlers. |
||
| 10 | |||
| 11 | The logger should be used as: |
||
| 12 | |||
| 13 | .. code-block:: python |
||
| 14 | |||
| 15 | from deepreg import log |
||
| 16 | |||
| 17 | logger = log.get(__name__) |
||
| 18 | |||
| 19 | The log level depends on the environment variable `DEEPREG_LOG_LEVEL`. |
||
| 20 | |||
| 21 | - 0: NOTSET, will be set to DEBUG |
||
| 22 | - 1: DEBUG |
||
| 23 | - 2: INFO (default) |
||
| 24 | - 3: WARNING |
||
| 25 | - 4: ERROR |
||
| 26 | - 5: CRITICAL |
||
| 27 | |||
| 28 | https://docs.python.org/3/library/logging.html#levels |
||
| 29 | |||
| 30 | :param name: module name. |
||
| 31 | :return: configured logger. |
||
| 32 | """ |
||
| 33 | logger = logging.getLogger(name=name) |
||
| 34 | logger.propagate = False |
||
| 35 | log_level = os.environ.get("DEEPREG_LOG_LEVEL", "2") |
||
| 36 | log_level_int = max(int(log_level) * 10, 10) |
||
| 37 | logger.setLevel(log_level_int) |
||
| 38 | formatter = logging.Formatter( |
||
| 39 | fmt="%(asctime)s | %(levelname)-8s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S" |
||
| 40 | ) |
||
| 41 | stdout_handler = logging.StreamHandler(stream=sys.stdout) |
||
| 42 | stdout_handler.setFormatter(formatter) |
||
| 43 | stdout_handler.setLevel(log_level_int) |
||
| 44 | logger.addHandler(stdout_handler) |
||
| 45 | return logger |
||
| 46 |