Flask,WSGI:将日志参数传递给Apache

时间:2014-02-20 13:59:30

标签: logging apache2 flask mod-wsgi wsgi

我使用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应用程序发出的日志?

1 个答案:

答案 0 :(得分:2)

没有将日志记录模块日志级别映射到Apache级别,因为它会导致各种微妙的问题,这会让您不知道为什么您没有从Python获取日志消息,因为Apache日志级别覆盖事物并抑制输出

你目前得到的是因为日志记录模块只是记录到stderr,在mod_wsgi下记录在'ERROR'下的Apache错误日志中,Apache在每一行都有自己的日志消息前缀。

您仍然可以使用输出格式化程序来控制您在消息部分中看到的内容,但是您无法替换每行上的Apache前缀。