繁体   English   中英

在Python中设置Logger类的问题

[英]Problems with setting up a Logger Class in Python

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

这是代码:

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模块日志,我添加了这个name变量作为建议。

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

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

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

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

来自loguru的示例

from loguru import logger

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM