[英]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.