| Conditions | 1 |
| Total Lines | 31 |
| 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 log level depends on the environment variable `DEEPREG_LOG_LEVEL`. |
||
| 12 | |||
| 13 | - 0: NOTSET, will be set to DEBUG |
||
| 14 | - 1: DEBUG |
||
| 15 | - 2: INFO (default) |
||
| 16 | - 3: WARNING |
||
| 17 | - 4: ERROR |
||
| 18 | - 5: CRITICAL |
||
| 19 | |||
| 20 | https://docs.python.org/3/library/logging.html#levels |
||
| 21 | |||
| 22 | :param name: module name. |
||
| 23 | :return: configured logger. |
||
| 24 | """ |
||
| 25 | logger = logging.getLogger(name=name) |
||
| 26 | logger.propagate = False |
||
| 27 | log_level = os.environ.get("DEEPREG_LOG_LEVEL", "2") |
||
| 28 | log_level_int = max(int(log_level) * 10, 10) |
||
| 29 | logger.setLevel(log_level_int) |
||
| 30 | formatter = logging.Formatter( |
||
| 31 | fmt="%(asctime)s | %(levelname)-8s | %(message)s", datefmt="%Y-%m-%d %H:%M:%S" |
||
| 32 | ) |
||
| 33 | stdout_handler = logging.StreamHandler(stream=sys.stdout) |
||
| 34 | stdout_handler.setFormatter(formatter) |
||
| 35 | stdout_handler.setLevel(log_level_int) |
||
| 36 | logger.addHandler(stdout_handler) |
||
| 37 | return logger |
||
| 38 |