Mar Elizo
clean deploy
c52261f
"""Base logger, borrowed from DeepMind"s Acme."""
from typing import Any
from loguru import logger
from typing import Mapping
LoggingData = Mapping[str, Any]
class Logger:
"""A logger has a `write` method."""
def __init__(
self,
log_dir: str,
) -> None:
self._logger = logger
self.info = self._logger.info
self.trace = self._logger.trace
self.debug = self._logger.debug
self.warning = self._logger.warning
self.success = self._logger.success
self.error = self._logger.error
self.critical = self._logger.critical
self._logger.add(f"{log_dir}/out.log")
def write(self, data: LoggingData):
"""Writes `data` to destination (file, terminal, database, etc)."""
raise NotImplementedError
@property
def logger(self):
return self._logger