【问题标题】:How to get error message content from console?如何从控制台获取错误消息内容?
【发布时间】:2025-12-18 17:25:06
【问题描述】:

我有以下文本作为日志输出(到 python 控制台),当再次运行 Qualys API 并想解析错误消息中的内容时(“错误!收到 A 4xx...)来自那里。 我正在使用qualysapi modul。根据我在模块中看到的内容,它创建了一个自己的记录器实例,不幸的是,打印的消息不包含在模块引发的异常中。

任何提示如何实现这样的事情?

      i     | Loading new data into Qualys...

Error! Received a 4XX client error or 5XX server error response.

Content = 
<!DOCTYPE SIMPLE_RETURN SYSTEM "<....>">
<SIMPLE_RETURN>
  <RESPONSE>
    <DATETIME>2021-11-20T17:07:40Z</DATETIME>
    <CODE>1905</CODE>
    <TEXT>parameter IPs has invalid value: One or more IPs are not assigned to this user: 10.73.32.133, 10.73.32.139-10.73.32.171, </TEXT>
  </RESPONSE>
</SIMPLE_RETURN>

      i     | Adding missing IPs to subscription, then we try again...

【问题讨论】:

    标签: python-3.x error-handling stdout qualys


    【解决方案1】:

    您可以将stdoutstderr 重定向到一个文件,然后处理该文件:

    import sys
    sys.stdout = open('file', 'w')
    print('test')
    sys.stdout.close()
    

    在此处查看更多信息:Redirect stdout to a file in Python?

    【讨论】:

    • 感谢您为我指明正确的方向!我选择了 contextlib 选项:*.com/a/22434262/15953987 我仍然想知道是否有更好的方法,而不是在运行时简单地打开文件