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

时间:2018-10-04 10:16:10

标签: python logging

我的日志记录如下:

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

我想为2个处理程序设置一个不同的级别。 但是我真的想保持简单,我想使用basicConfig做到这一点。

有办法吗?

我尝试过,但是失败了:

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')
  

TypeError: init ()获得了意外的关键字参数'level'

1 个答案:

答案 0 :(得分:1)

我认为您实际上并不会在处理程序级别上实际使用DEBUG,因为无论您是否将级别设置为{,它们都会通过所有消息(> = DEBUG) {1}}。对于更高级别,出于说明目的,我将其称为DEBUGlevel1

level2

,然后将h1 = logging.FileHandler(...); h1.setLevel(level1) h2 = logging.StreamHandler(...); h2.setLevel(level2) 传递到handlers=[h1, h2]