将消息记录到 Django 中的控制台

Vaibhav Vaibhav 2021年12月25日
将消息记录到 Django 中的控制台

当我们在机器上安装一组软件时,我们经常会在该应用程序的控制台中找到一个日志文件或看到一些消息正在打印。这些是日志消息,提供有关应用程序中发生的事件、软件正在完成的任务、遇到的错误、警告等信息。如果用户允许应用程序共享错误报告,这些消息将帮助软件开发人员改进他们的应用程序并对其进行调试。

在使用 Django 或任何其他项目框架时,我们通常使用打印语句来调试我们的应用程序。打印报表是宏大的;它们是内置的,使用起来非常轻松。但是,如果我们开始使用专用于此目的的包或库,我们可以将这件事提升到一个新的水平。这些库让我们可以定义日志消息的级别,并轻松打印行号和时间戳等附加信息。一些库甚至允许我们为日志语句或消息添加颜色。

在本文中,我们将学习如何在 Django 项目中将消息记录到控制台。

使用内置 Python 库 logging 记录消息

Python 带有一个内置库 logging,其唯一目的是帮助实现灵活的事件日志记录系统。在本文中,我们不会介绍所有内容,而只会介绍基础知识和一些基本内容。

使用 logging 时,我们使用 logger 将消息记录到控制台。如上所述,日志消息具有指示日志消息目的的某些级别。这个图书馆有五个这样的级别,每个级别都有一个资历编号。例如,CRITICAL 级别的最高资历为 50。DEBUG 为 10。INFOWARNINGERROR 分别为 20、30 和 40。

  • DEBUG - 用于打印消息以调试应用程序。
  • INFO - 用于打印一般消息,例如确认、确认和成功消息。
  • WARNING - 用于报告警告、由于输入导致的意外事件、未来可能出现的某些问题的指示等。
  • ERROR - 用于警告很可能不会阻止应用程序运行的严重问题。
  • CRITICAL - 用于警告可能损害用户数据、暴露用户数据、妨碍安全、停止某些服务或可能终止应用程序本身的关键问题。

logging 库具有我们可以用来记录消息的函数。要演示,请检查以下代码:

import logging

logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

默认情况下,记录器不会记录 debuginfo 级别的日志消息。要启用它们,我们必须为记录器定义一个级别。以下代码执行相同的操作:

import logging

logging.basicConfig(level=logging.NOTSET)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

如果级别设置为 INFO,则只会打印所有资历编号大于等于 INFO 的级别。下面的程序描述了这个过程:

import logging

logging.basicConfig(level=logging.INFO)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

basicConfig() 方法可用于定义级别。总的来说,level 参数可以接受六个值。

  • logging.DEBUG # 10
  • logging.INFO # 20
  • logging.WARNING #30
  • logging.ERROR # 40
  • logging.CRITICAL # 50
  • logging.NOTSET # 0

你可以配置更多参数;你可以在这里阅读更多关于它们的信息。

要了解更多信息,请参阅此列表:

  • filename - basicConfig() 方法有一个 filename 参数,可用于设置文件名,所有消息都应记录到该文件名。指定文件名后,日志消息将记录到此文件而不是控制台中。
  • filemode - basicConfig() 方法有一个 filemode 参数,用于定义上述文件的打开模式。默认情况下,它被设置为"a",这意味着 append。因此,每次运行该程序时,新的日志消息都会附加到旧的消息中。
  • format - basicConfig() 方法有一个 format 参数,可用于格式化日志消息结构。默认格式如下所示:<Level>:root:<Message>,将被新格式覆盖。

如果你想阅读有关此库的更多信息,请参阅此处

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.