从Python库输出错误消息的正确方法

时间:2018-11-14 20:00:34

标签: python logging stderr

我现在在我的Python代码中:

sys.stderr.write("Iteration stopped to avoid infinite loop.\n")

但是无论代码的客户端想要什么,此代码始终会写入stderr。

我会改用记录器,但这会向stderr输出类似以下消息:

:INFO:main:Iteration stopped to avoid infinite loop.

代替

Iteration stopped to avoid infinite loop.

我不希望:INFO:main:收到这条特定消息。

所以我的问题:

  • 我可以配置记录器以不输出:INFO:main:吗?

  • 除Python记录器外,我还能使用什么?

如果Python安装中没有此类,那么我自己的logger类的接口应该是什么?应该是

class MyLogger(object):
    @abstractmethod
    def log(msg):
        pass

或者我可能会错过什么(也许添加一些其他方法,也许添加一些额外的log()参数)?

1 个答案:

答案 0 :(得分:2)

您可以修改basicConfig来更改错误消息

import logging
logging.basicConfig(format='%(message)s')
logging.warning("Iteration stopped to avoid infinite loop.")