我使用mod WSGI在Apache上运行Flask应用程序。我正在尝试使用其记录器从应用程序记录一条简单的消息:
app.logger.name="users server"
app.logger.setLevel(logging.DEBUG)
app.logger.debug("my log message")
Apache日志中的结果是:
[Thu Feb 20 12:54:42.853231 2014] [:error] [pid 19461:tid 140399641954048] DEBUG:users server:my log message
从Flask通过WSGI到Apache的路径上,日志元数据丢失了。 Apache显示[:error]
而不是DEBUG
,名称为[pid 19461:tid 140399641954048]
,而不是users server
。日志数据在日志行的末尾显示为未解析的文本。
如何设置WSGI,Apache和Flask来解析Flask应用程序发出的日志?
答案 0 :(得分:2)
没有将日志记录模块日志级别映射到Apache级别,因为它会导致各种微妙的问题,这会让您不知道为什么您没有从Python获取日志消息,因为Apache日志级别覆盖事物并抑制输出
你目前得到的是因为日志记录模块只是记录到stderr,在mod_wsgi下记录在'ERROR'下的Apache错误日志中,Apache在每一行都有自己的日志消息前缀。
您仍然可以使用输出格式化程序来控制您在消息部分中看到的内容,但是您无法替换每行上的Apache前缀。