Source code for ls_mlkit.util.log

import logging
import os
import time


[docs] def get_logger(name="unnamed", log_dir: str = None) -> logging.Logger: """Get a logger Args: name (str, optional): the name of the logger. Defaults to "unnamed". log_dir (str, optional): the directory to save the logs. Defaults to None. Returns: logging.Logger: the logger """ logger = logging.getLogger(name) logger.propagate = False logger.setLevel(logging.DEBUG) formatter = logging.Formatter("[%(asctime)s::%(name)s::%(levelname)s] %(message)s") stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.DEBUG) stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) if log_dir is not None: file_handler = logging.FileHandler(os.path.join(log_dir, "log.txt")) file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger
[docs] def get_and_create_new_log_dir(root="./logs", prefix="", suffix="") -> str: """Get and create a new log directory Args: root (str, optional): the root directory to save the logs. Defaults to "./logs". prefix (str, optional): the prefix of the log directory. Defaults to "". suffix (str, optional): the suffix of the log directory. Defaults to "". Returns: str: the new log directory """ filename = time.strftime("%Y_%m_%d__%H_%M_%S", time.localtime()) if prefix != "": filename = prefix + "_" + filename if suffix != "": filename = filename + "_" + suffix log_dir = os.path.join(root, filename) os.makedirs(log_dir) return log_dir
if __name__ == "__main__": log_dir = get_and_create_new_log_dir(root="./logs", prefix="test", suffix="") logger = get_logger(name="yyy", log_dir=log_dir) logger.info("archlinux") logger.debug("ubuntu")