【发布时间】:2019-07-18 21:34:51
【问题描述】:
我创建了这个记录器类,它非常适合我拥有的项目,但是当我简单地将结构复制并粘贴到另一个项目时,它不起作用。我尝试写入的日志既没有出现在指定的文件中,也没有出现在控制台中。
这是代码:
import logging
class Logger:
def __init__(self, path=None, name=None):
format_string = '%(asctime)s : T%(relativeCreated)05ds : %(levelname)-8s - %(name)s : %(message)s'
format_date = '%Y-%m-%dT%H:%M:%S'
# BASIC CONFIG
if path is not None:
logging.basicConfig(filename=path, filemode='a', format=format_string, datefmt=format_date)
# START LOGGER
logger = logging.getLogger(name)
if path is None:
# DEFINE FORMAT
handler = logging.StreamHandler()
formatter = logging.Formatter(fmt=format_string, datefmt=format_date)
handler.setFormatter(formatter)
logger.addHandler(handler)
# LEVEL SET
logger.setLevel(logging.DEBUG)
logger.info('TEST')
self.logger = logging.getLogger(__name__)
self.logger.info(f'START NEW EXECUTION\n\n{"=" * 36}\n')
self.logger.info(f'START NEW EXECUTION\n\n{"=" * 36}\n') 行不会将任何内容打印到由变量 path 设置的文件中。这只发生在我向记录器添加name 时。我添加了这个 name 变量作为我发现的建议,以避免编写 Python 模块的日志。
我觉得我正在做一些非常简单的事情(我刚刚开始使用日志记录模块)导致了这个问题,但我看不到它,因为这个确切的结构在另一个项目中工作正常。
编辑0: 我的最终目标是拥有一个我可以在任何项目中使用的 Logger 类,只需复制文件并以相同的方式使用它,如果有人有这样的东西并且不介意分享,那对我来说就足够了。
【问题讨论】: