簡體   English   中英

如何配置Python 2.3日志消息的格式?

[英]How to configure format of Python 2.3 logging messages?

在Python 2.4及更高版本中,將日志記錄模塊配置為具有更基本的格式很容易:

logging.basicConfig(level = opts.LOGLEVEL,format =“%(message)s”)

但是對於需要支持Python 2.3的應用程序來說似乎更加困難,因為日志API在Py2.4中進行了大修。 特別是,basicConfig不帶任何參數。 嘗試在Py2.3文檔中的唯一示例的變體,我得到這個:

try:
    logging.basicConfig(level=opts.LOGLEVEL, format="%(message)s")
except:
    logging.getLogger().setLevel(opts.LOGLEVEL)
    h = logging.StreamHandler()
    h.setFormatter(logging.Formatter("%(message)s"))
    logging.getLogger().addHandler(h)

但是在Py2.3中調用這個根記錄器,例如

logging.info("Foo")

給出重復的輸出:

Foo
INFO:root:Foo

我無法找到一種方法來修改Py2.3中根記錄器上的現有處理程序的格式(上面的“除”塊),因此產生重復輸出的“addHandler”調用。 有沒有辦法設置根記錄器的格式沒有這種重復? 謝謝!

except:無異常類[es]是一個很好的方法來解決問題。 我相信Python 2.3中的logging模塊具有basicConfig()函數,但選項較少。 由於它接受**kwargs它可能在做完一些工作后的任何時候失敗。 我認為它已經安裝了一個默認格式的處理程序,然后無法配置。 捕獲異常后,您已安裝另一個處理程序。 擁有2個處理程序,您可以為每個事件獲得2條消息。 在您的情況下最簡單的方法:避免使用basicConfig()並手動配置logging 永遠不要使用except:如果你沒有重新加入或記錄被捕異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM