使用日志记录将消息记录到数组/列表

Fra*_*ack 1 python logging

目前我正在使用python日志记录将消息记录到日志文件和控制台(如果--verbose).

如何配置日志记录以将消息记录到数组/列表中?

Fra*_*ack 5

  1. 发布后想出这个.
  2. 将Stream用于字符串.
  3. 这是代码片段,不包括stdout Stream和普通的logger文件句柄:

    import io
    import logging
    
    logger = logging.getLogger()
    errors = io.StringIO()
    formatter = logging.Formatter('%(asctime)s - %(module)s.%(funcName)s() - %(levelname)s - %(message)s',"%Y-%m-%d %H:%M:%S")
    eh = logging.StreamHandler(errors)
    eh.setFormatter(formatter)
    logger.addHandler(eh)
    
    logger.error("This is a test error message")
    contents=errors.getvalue()
    print("error string=>{}".format(contents))
    errors.close()
    
    Run Code Online (Sandbox Code Playgroud)

  • 你知道,因为这是首选答案,你应该"接受"它.(附注:你似乎有一个在评论中承认好答案但不接受它们的历史;如果你回到那些回答良好的问题并接受其中一个答案,那将是非常好的.) (3认同)