def test_filtering_by_level(self) -> None: messages = [] def raw_messages() -> List[str]: return list(map(lambda m: m.record["message"], messages)) logger.remove(None) logger.add(lambda m: messages.append(m), filter=DEFAULT_FILTER, level=0) set_level("CRITICAL") logger.debug("Test") assert raw_messages() == [] logger.critical("Another") assert raw_messages() == ["Another"] logger.info("Info") assert raw_messages() == ["Another"] set_level("INFO") logger.info("Info") assert raw_messages() == ["Another", "Info"] logger.trace("Trace") assert raw_messages() == ["Another", "Info"] set_level("TRACE") logger.trace("trace") logger.debug("debug") logger.error("error") assert raw_messages() == ["Another", "Info", "trace", "debug", "error"]
def test_log_execution_time_no_args() -> None: @log_execution_time def log_me(): pass messages = [] logger.add(lambda m: messages.append(m), level=0) log_me() assert messages[0].record["message"] == "Function 'log_me' executed in 15s"
def test_log_execution_time() -> None: @log_execution_time(level="INFO") def log_me(): pass messages = [] logger.add(lambda m: messages.append(m), level=0) log_me() assert messages[0].record["message"] == "Function 'log_me' executed in 15s" assert messages[0].record["level"].name == "INFO"
def test_log_execution() -> None: @log_execution def log_me(): pass messages = [] logger.add(lambda m: messages.append(m), level=0) log_me() assert messages[0].record[ "message"] == "Entering 'log_me' (args=(), kwargs={})" assert messages[1].record["message"] == "Exiting 'log_me' (result=None)"
def test_logging_to_trace(self) -> None: messages = [] logger.add(lambda m: messages.append(m), filter=DEFAULT_FILTER, level=0) set_level("TRACE") logger.critical("critical") logger.debug("debug") logger.trace("trace1") logger.trace("trace2") messages = list(map(lambda m: m.record["message"], messages)) assert messages == ["critical", "debug", "trace1", "trace2"]
def setup_handler(self, messages) -> loguru.Logger: logger.add(lambda m: messages.append(m), format=DEFAULT_FORMATTER, level=0)
def logger(self, handler: ProgressHandler) -> loguru.Logger: logger = loguru.logger.bind(connector="progress") logger.add(handler.sink) return logger