Django中的异步日志记录



我使用API在Django中创建了一个简单的天气Web应用程序。日志记录已启用,并写入Windows中的文件中。我希望日志记录是异步的,即在执行结束时。我们如何在Django中进行异步日志记录?

我们只能在Django中创建异步视图。有一个Python Logstash包,它具有异步的日志记录方式,但它将日志存储在远程实例的数据库中。(另一种选择是将日志存储在SQLLite3db中(。文件记录选项不在其中。

此外,async在Django中还是个新手,但它仍然存在许多尚未解决的复杂性会降低性能。请在下面找到一些链接以供参考。

https://pypi.org/project/python-logstash/https://docs.djangoproject.com/en/3.1/topics/async/#:~:text=新%20in%20Django%203.,有%20effective%20long%2正在运行%20个请求。https://deepsource.io/blog/django-async-support/

您可以使用python标准库中的logging模块

import logging
logger = logging.getLogger(__name__)
# Set file as output
handler = logging.StreamHandler()
# Formatter template
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# add a formatter to handler
handler.setFormatter(formatter)
# add a handler to logger
logger.addHandler(handler)
# your messages will be added to the file
logger.error("it's error message")
logger.info("it's info message")
logger.warning("it's warning message")

官方文件:https://docs.python.org/3/library/logging.html

我希望我帮了你!(

我可以建议您像这样启动django项目。缺点:不会向控制台输出任何内容,但它的工作速度将比在中间件中更快

nohup python manage.py runserver > file.log

最新更新