簡體   English   中英

Google App Engine / Python - 更改日志記錄格式

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

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