保存日志记录调试并仅显示日志记录INFO Python

问题描述 投票:1回答:2

我想将所有日志记录行保存在superwrapper.log中,但仅在控制台中显示INFO。如果我删除文件名行的#,则该文件是okey,但在控制台中看不到任何内容。

if __name__ == '__main__':

    logging.basicConfig(
        #filename='superwrapper.log',
        level=logging.DEBUG,
        format='%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S'
    )

2020-04-28 11:41:09.698 INFO common - handle_elasticsearch: Elastic connection detected
2020-04-28 11:41:09.699 INFO superwrapper - <module>: Cookies Loaded: |TRUE|
2020-04-28 11:41:09.715 DEBUG connectionpool - _new_conn: Starting new HTTPS connection (1): m.facebook.com:443
python logging
2个回答
2
投票
import logging import sys file_handler = logging.FileHandler('superwrapper.log') console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) logging.basicConfig( level=logging.DEBUG, format='%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S', handlers=[ file_handler, console_handler ] )

要注意的一件事是StreamHandler写到strerr。通常,您需要使用sys.stdout覆盖它


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.