在Python中设置Logger类的问题

时间:2019-07-18 13:27:37

标签: python logging

我有一个创建的记录器类,它对于我拥有的项目非常适用,但是当我简单地将结构复制并粘贴到另一个项目中时,它将不起作用。我尝试写入的日志没有出现在指定的文件中,也没有出现在控制台中。

这是代码:

AVPlayer

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变量作为建议,以避免编写Python模块日志。

我感觉自己正在做一些非常简单的事情(我刚刚开始使用日志记录模块),导致了这个问题,但是我看不到它,因为这种精确的结构在另一个项目中可以正常工作。

EDIT0: 我的最终目标是拥有一个Logger类,我可以在任何项目中使用它,只需复制文件并以相同的方式使用它,如果任何人有类似的东西并且不介意共享,那对我来说就足够了。 >

1 个答案:

答案 0 :(得分:1)

  

我的最终目标是拥有一个Logger类,我可以通过复制文件并以相同的方式使用它来在任何项目中使用,如果任何人有类似的东西并且不介意共享,那么对我来说就足够了

我建议创建一些可以导入的东西,而不是复制粘贴代码,如果您要进行更改,则只需在一个地方进行更新即可。但是,由于您愿意使用现有工具,因此我建议使用default logger或我个人最喜欢的loguru

loguru示例

from loguru import logger

logger.debug("That's it, beautiful and simple logging!")