代码之家  ›  专栏  ›  技术社区  ›  NI6

python记录器的后代-好处

  •  0
  • NI6  · 技术社区  · 6 年前

    在名为“foo”的项目中,模块名为“bar”:

    import logging
    logger = logging.getLogger(__name__)
    # other pieces of code, that all of them use log...
    

    记录器=日志记录.getLogger(姓名)
    #其他的代码,它们都使用日志。。。
    

    而不仅仅是创建一个logger对象,然后让其他模块导入并使用它。例如,在同一项目中:

    from foo.logs import logger
    # other pieces of code, that all of them use log...
    

    import logging
    logger = logging.getLoger('foo')
    # some init logic of the logger...
    

    我可以从创建的LogRecord对象中获得所需的所有数据:filename、funcName、pathname、name等。。。

    1 回复  |  直到 6 年前
        1
  •  1
  •   zvone    6 年前

    为每个文件创建一个单独的记录器的原因是,您可以在不更改源代码的情况下自定义记录的内容和未记录的内容。

    日志记录通常通过外部文件进行配置,安装后可以修改外部文件,即使用户不是软件开发人员。

    出于同样的原因,每个记录器可以使用不同的日志记录级别,以便生成更多或更少的日志。然后在某个时刻,例如,当来自模块的详尽日志数据 a 为调试所需,可以修改配置文件以显示 DEBUG 模块的日志级别 而不会将日志文件与应用程序中每个模块的调试信息混在一起。