Bri*_*unt 7 python logging google-app-engine
如何更改loggingGoogle App Engine中模块的输出格式?
我试过了,例如:
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")
Run Code Online (Sandbox Code Playgroud)
但是,这会导致重复的日志记录输出:一个包含来自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的格式,同时避免重复输出?
谢谢你的阅读.
布赖恩
Dav*_*ill 11
以下是一种可以在不重复输出的情况下更改日志记录格式的方法:
# directly access the default handler and set its format directly
logging.getLogger().handlers[0].setFormatter(fr)
Run Code Online (Sandbox Code Playgroud)
这有点像黑客,因为你必须直接访问handlers存储在根记录器中的列表.问题是GAE logging在您的代码运行之前自动使用- 这会创建一个默认处理程序.不幸的是,我没有看到如何在不直接访问handlers上面列表的情况下获得对此处理程序的引用.
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |