代码之家  ›  专栏  ›  技术社区  ›  porton

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

  •  0
  • porton  · 技术社区  · 7 年前

    现在我的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: 为了这个特殊的信息。

    所以我的问题是:

    • 我能配置一个记录器不输出吗 信息:主要: ?

    • 除了python记录器,我还能使用什么?

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

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

    或者我可能会错过什么(可能会添加一些其他方法,或者其他一些方法) log() 争论)?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Faquarl    7 年前

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

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