我希望在任何一个单独的 py 文件里,通过文件名,就能获取到一个 logger,然后这个 logger 就能写入到这个文件里,互不影响
我写了一个函数,但是发现每次获取到 logger,handlers 都是空的,然后每次都重新覆盖了一个文件
def getTaskLogger(task_path: str) -> logging.Logger:
logger = logging.getLogger(task_path)
if logger.hasHandlers():
return logger
formatter = logging.Formatter("%(asctime)s | %(levelname)s | [%(filename)s:%(lineno)d] | %(message)s")
f_handler = logging.FileHandler("{0}/task.log".format(task_path), mode="a")
f_handler.setLevel(logging.DEBUG)
f_handler.setFormatter(formatter)
c_handler = logging.StreamHandler()
c_handler.setLevel(logging.DEBUG)
c_handler.setFormatter(formatter)
logger.addHandler(f_handler)
logger.addHandler(c_handler)
logger.setLevel(logging.DEBUG)
return logger