代码之家  ›  专栏  ›  技术社区  ›  Charles R

Python logging.basicConfig为处理程序设置不同的级别

  •  1
  • Charles R  · 技术社区  · 6 年前

    我的日志记录有以下代码:

    logging.basicConfig(
                        handlers=[
                            logging.FileHandler("log.txt", "w"),
                            logging.StreamHandler()
                        ],
                        format='%(levelname)s - %(asctime)s - %(message)s',
                        datefmt='%H:%M:%S',
                        level=logging.DEBUG)
    

    我想为我的两个处理程序设置一个不同的级别。 但我真的想保持简单,我想用基本配置。

    我试过但失败了:

    logging.basicConfig(
                        handlers=[
                            logging.FileHandler("log.txt", "w", level=logging.DEBUG),
                            logging.StreamHandler(level=logging.DEBUG)
                        ],
                        format='%(levelname)s - %(asctime)s - %(message)s',
                        datefmt='%H:%M:%S')
    

    类型错误: 初始化 ()获得意外的关键字参数“level”

    1 回复  |  直到 6 年前
        1
  •  2
  •   Vinay Sajip    6 年前

    我猜你不会真的用 DEBUG 实际上,对于处理程序级别,因为它们将传递所有消息(>= )不管你是否将等级设置为 调试 level1 level2

    h1 = logging.FileHandler(...); h1.setLevel(level1)
    h2 = logging.StreamHandler(...); h2.setLevel(level2)
    

    然后通过 handlers=[h1, h2] basicConfig .