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

python只在记录了某些内容时创建日志文件

  •  1
  • Lightsout  · 技术社区  · 4 年前

    如果记录了某些内容,是否有方法只创建日志文件?即使没有记录任何内容,我的程序似乎也会创建日志文件。

    import logging
    
    logfilePath = "mylog.log"
    logging.basicConfig(filename=logfilePath, level=logging.INFO, format='%(asctime)s: %(message)s')
    
    myfunc1thatmightuseslog()
    myfunc2thatmightuseslog()
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   wim    4 年前

    文件处理程序和子类都接受 delay 关键字( docs ):

    class logging.FileHandler(filename, mode='a', encoding=None, delay=False, errors=None)
    

    返回一个新的实例 FileHandler 类。指定的文件被打开并用作日志记录的流。如果未指定模式, 'a' 使用。如果 编码 不是 None ,它用于打开具有该编码的文件。 如果 延迟 如果为true,则文件打开将推迟到第一次调用 emit() 。默认情况下,文件无限增长。如果 错误 如果指定了,则用于确定如何处理编码错误。

    然而,这个选项并没有贯穿到 basicConfig ,因此它将始终采用默认值 False 在这种情况下。而不是使用 基本配置 为了方便起见,您需要显式配置日志记录以使用此功能。