Initializes multi-GPU-friendly python logger.
(name=__name__, level=logging.INFO)
| 98 | |
| 99 | |
| 100 | def get_logger(name=__name__, level=logging.INFO) -> logging.Logger: |
| 101 | """Initializes multi-GPU-friendly python logger.""" |
| 102 | logger = logging.getLogger(name) |
| 103 | logger.setLevel(level) |
| 104 | |
| 105 | # this ensures all logging levels get marked with the rank zero decorator |
| 106 | # otherwise logs would get multiplied for each GPU process in multi-GPU setup |
| 107 | for level in ("debug", "info", "warning", "error", "exception", "fatal", "critical"): |
| 108 | setattr(logger, level, rank_zero_only(getattr(logger, level))) |
| 109 | |
| 110 | return logger |
| 111 | |
| 112 | |
| 113 | ##### |
no outgoing calls
no test coverage detected