根目录设置,日志记录
1.根目录
from pathlib import Path # E:\projects\Experiment\NARRE ROOT_DIR = Path(__file__).parent.parent if __name__ == "__main__": print(ROOT_DIR)
2.日志记录模块
import logging from NARRE.utils.path_helper import ROOT_DIR FORMATTER = logging.Formatter('%(asctime)s [%(levelname)s] %(filename)s:%(lineno)d - %(message)s') def get_logger(name: str): logger = logging.getLogger(name) # if logger is newly created if not logger.handlers: logger.setLevel(logging.DEBUG) # create console handler ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(FORMATTER) # add the handlers to the logger logger.addHandler(ch) return logger def add_log_file(logger, path: str): ''' 这个函数用于将日志输出到文件中。首先按照指定路径创建一个文件处理器 fh。设置处理器的日志级别为 INFO,并使用 FORMATTER 格式化日志信息。 将处理器添加到指定的 logger 对象中。之后,所有通过该 logger 对象输出的日志都会被发送到指定路径的文件中。 ''' # create file handler with INFO level fh = logging.FileHandler(ROOT_DIR.joinpath(path)) fh.setLevel(logging.INFO) fh.setFormatter(FORMATTER) logger.addHandler(fh) def remove_log_file(logger): logger.handlers = [h for h in logger.handlers if not isinstance(h, logging.FileHandler)] logger = get_logger("NARRE") if __name__ == "__main__": logger.info("Info message.") add_log_file(logger, "log/test.log") logger.debug("Debug message.") logger.warning("Warning message.") remove_log_file(logger) logger.critical("Critical message.")

浙公网安备 33010602011771号