[英]How to dynamically change logging level of python app in Google App Engine?
[英]Google App Engine/Python - Change logging formatting
如何更改Google App Engine中logging
模塊的輸出格式?
我試過了,例如:
log_format = "* %(asctime)s %(levelname)-8s %(message)s"
date_format = "%a, %d %b %Y %H:%M:%S"
console = logging.StreamHandler()
fr = logging.Formatter(log_format)
console.setFormatter(fr)
logger = logging.getLogger()
logger.addFilter(SuperfluousFilter())
logger.addHandler(console)
logger.setLevel(logging.DEBUG)
console.setLevel(logging.DEBUG)
logging.error("Reconfiguring logging")
但是,這會導致重復的日志記錄輸出:一個是來自google/appengine/tools/dev_appserver.py
(或Google代碼中某處)的日志記錄處理程序,另一個來自我上面的新StreamHandler
。 以上代碼輸出:
ERROR 2010-06-23 20:46:18,871 initialize.py:38] Reconfiguring logging 2010-06-23 20:46:18,871 ERROR Reconfiguring logging
頂行顯然來自dev_appserver.py
,來自我的代碼的底線。
所以我想推論的問題是:如何更改Google App Engine的格式,同時避免重復輸出?
謝謝你的閱讀。
布賴恩
以下是一種可以在不重復輸出的情況下更改日志記錄格式的方法:
# directly access the default handler and set its format directly
logging.getLogger().handlers[0].setFormatter(fr)
這有點像黑客,因為您必須直接訪問存儲在根記錄器中的handlers
列表。 問題是GAE在您的代碼運行之前自動使用logging
- 這會創建一個默認處理程序。 不幸的是,我沒有看到如何在不直接訪問上面的handlers
列表的情況下獲得對此處理程序的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.