繁体   English   中英

Python mod_wsgi写入自定义日志文件而不是Apache error_log

[英]Python mod_wsgi write to custom log file instead of apache error_log

我有一个Python应用程序,已在Apache和mod_wsgi的生产环境中部署。 在我的应用程序中,我的设置日志如下:

config文件:

log_file = os.path.dirname(os.path.abspath(__file__)) + "/app.log"
log_level = logging.DEBUG

__init__.py文件:

root_logger = logging.getLogger()
root_logger.setLevel(config.log_level)

log_format = logging.Formatter("%(asctime)s [%(levelname)s] [%(name)s] %(message)s")

file_handler = logging.FileHandler(config.log_file)
file_handler.setFormatter(log_format)

stream_handler = logging.StreamHandler()
stream_handler.setFormatter(log_format)

root_logger.addHandler(file_handler)
root_logger.addHandler(stream_handler)

该代码在创建Flask应用程序之前执行。

所有不是错误/异常的日志记录都已正确记录到此自定义文件中。

但是,如果在Web服务器运行时生成异常,则会将错误写入Apache的错误日志中,而不是在此处配置的错误日志中。 如何配置Python的logging / mod_wsgi / Apache,以便将所有内容写入此处配置的日志文件?

flask错误处理文档将您的记录器添加到WSGI应用程序记录器:

if not app.debug:
    import logging
    from themodule import TheHandlerYouWant
    file_handler = TheHandlerYouWant(...)
    file_handler.setLevel(logging.WARNING)
    app.logger.addHandler(file_handler)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM