[英]On the google app engine, how do I change the default logging level of the dev_appserver.py?
[英]How do I change the default format of log messages in python app engine?
我想在來自我的請求處理程序的日志消息中默認記錄模塊和類名。
執行此操作的常用方法似乎是通過調用logging.basicConfig
來設置自定義格式字符串,但這只能調用一次,並且在我的代碼運行時已被調用。
另一種方法是創建一個新的日志Handler
,它可以傳遞一個新的日志Formatter
,但這似乎不正確,因為我想使用 App Engine 已安裝的現有日志處理程序。
將額外信息添加到 python App Engine 中的所有日志消息的正確方法是什么,否則使用現有的日志格式和接收器?
我通過閱讀logging
模塊的__init__.py
。 我不知道這是否合適,但它似乎有效:
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d %H:%M',
)
logging.info('Danger Will Robinson!')
# 03-31 20:00 root INFO Danger Will Robinson!
root = logging.getLogger()
hdlr = root.handlers[0]
fmt = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
hdlr.setFormatter(fmt)
logging.info('Danger Will Robinson!')
# root : INFO Danger Will Robinson!
我發現這適用於 Python 3.6,它將為所有后續日志記錄調用設置日志記錄級別/格式,即使logging
是由以前的導入調用的。
logging_level = logging.INFO
logging_fmt = "%(levelname)s:%(name)s:%(message)s" # the default
try:
root_logger = logging.getLogger()
root_logger.setLevel(logging_level)
root_handler = root_logger.handlers[0]
root_handler.setFormatter(logging.Formatter(logging_fmt))
except IndexError:
logging.basicConfig(level=logging_level, format=logging_fmt)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.