您的位置:

Django 的日志记录器

所有开发人员都会遇到这些错误,解决这些问题需要一些时间。

当我们知道了实际问题,当错误发生时,就变得更有帮助了。这意味着 Python 的错误消息非常有帮助。

在本教程中,我们将讨论日志模块以及如何在 Django 中实现它。该模块提供了许多优势。作为一名 Django 开发人员,掌握日志记录也很重要。Django 为各种日志框架和模块提供了出色的支持。

让我们先简单介绍一下日志模块。

什么是日志记录?

日志是一种允许开发人员在软件执行时跟踪一些事件的技术。它是开发人员最重要的工具。日志有助于维护软件,并作为开发人员的额外眼睛。

它跟踪任何时候发生的每一个事件。实现日志模块后,我们可以很容易地找到哪个部分抛出了错误。这种方法可以让我们快速解决错误。

它是如何工作的?幕后

一个单独的程序处理日志记录,该日志记录程序只是一个文件写入程序。据说记录器以文本格式记录某些事件。记录的信息随后保存在文件中。这些文件称为日志,并以日志扩展名保存。它们包含所发生事件的日志。

Python 提供了日志模块,它附带了额外的功能。我们将讨论日志模块的各种特性。日志模块可以处理以下任务-

  • 多线程执行。
  • 通过不同的日志级别对消息进行分类。
  • 它更加灵活和可配置。
  • 给出更多结构化信息。

如果您想了解更多关于日志模块的信息,请访问我们 Python 中的日志模块教程。

日志模块的组件

日志模块主要有四个组件。我们将在下面讨论每个组件。

  • 伐木工

开发商与日志记录器打交道;它与调用它们时将调用的函数相同。当我们调用该函数时,它会提供一个详细的报告。记录器可以生成多级响应。

我们也可以根据自己的要求进行修改。

  • 处理器

处理程序用于产生信息。它就像一份传递信息的报纸。我们可以通过在日志文件中提及信息来实现这一点(默认行为)。日志模块提供了许多进程程序。

同一个记录器可以实现多个处理程序。SMTP 处理程序也可用,它将为我们发送日志记录。处理程序通常包含用于记录信息的业务逻辑。

  • 过滤器

过滤器用于处理从记录器传递到处理程序的日志记录。顾名思义,它过滤信息。多个消息可以有多个处理程序。默认情况下,将处理符合日志级别要求的任何日志消息。

我们可以对记录器和处理程序使用过滤器。

  • 格式化程序

格式化程序用于格式化数据。处理程序的问题是它们不能以 Python 数据类型发送信息。要发送这种类型的信息,我们需要先转换。

默认情况下,日志采用日志记录格式,日志记录模块对其进行预定义。我们可以直接通过互联网或文本文件的形式发送信息。要转换格式,我们需要格式化程序。

在 Django 登录

登录模块可以在 Django 中轻松实现,并且可以轻松配置。

要使用 Django 中的记录器,我们需要遵循以下步骤。

  • settings.py 文件将配置各种记录器、处理程序和过滤器。
  • 我们需要在 Django 的视图或任何其他模块中包含记录器代码。

让我们开始在 Django 使用记录器的过程。

创建新项目

记录器可以在现有项目中实现。但是,您可以创建一个新项目来更好地理解它。使用下面的命令在 Django 创建一个新项目。


django-admin startproject javatpoint

上面的命令将创建项目。现在,我们将配置 settings.py 项目。

配置设置

\这是在 Django 实现记录器的第一步。配置设置非常容易。我们需要定义以下内容-

  • 记录器
  • 经理人
  • 过滤
  • 格式化程序

我们使用 dictConfig 方法,但是还有其他方法可用。但是 dictConfig 方法是 Django 的默认方法。复制下面的代码并粘贴到 settings.py 中。


# JavaTpoint #Logging Information
LOGGING = {
    'version': 1,
    # Version of logging
    'disable_existing_loggers': False,
    #disable logging 
    # Handlers #############################################################
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'loggerDjango-debug.log',
        },
########################################################################
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    # Loggers ####################################################################
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
            'propagate': True,
            'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
        },
    },
}

让我们分解上面的代码-

代码可能看起来庞大而复杂,但很容易理解。我们有一个内置变量 LOGGING 来自 Django。因为我们使用名为字典配置的方法来配置设置。日志记录的默认值来自该字典。

以下是位于 LOGGING 字典中的一些重要关键字。

以下是位于日志字典中的一些重要关键字。

  1. 版本
  2. 禁用现有记录器
  3. 经理人
  4. 记录器

版本键指定模式版本。它有值,缺省值是 1。

下一个键是disable exing logger,,它指定不要禁用 logger。默认情况下,Django 自带记录器。这些日志记录器与 Django ORM 和 Django 内部有联系。默认情况下,该键为真,因此它会禁用这些记录器。

第三个键是 Handlers。如上所述,处理程序处理消息并将其传递给控制台、文件等。处理程序本身就是一本字典。处理程序的名称被定义为字典键。记录器提供了许多进程程序,但是我们将在这里使用这两个处理程序。

1。文件处理程序:日志-名称文件处理程序

文件处理程序将日志存储在一个文件中。从上面的代码中可以看到,我们给了文件名 javatpoint-debug.log 。日志文件一般以扩展名存储。我们需要有权限才能对其进行更改。

2。StreamHandler:记录器名称-控制台

流处理程序将在控制台上流式传输日志。不建议使用此方法。在命令行显示日志之前,字符数是有限制的。在大日志的情况下,我们需要数据文件处理器。

处理程序较多,如邮件处理程序、AdminEmailHandlers 等。

记录器将记录服务器或软件信息。记录器也是一种字典类型。它具有与处理程序相似的体系结构。但是,有不同的属性和其他属性。

Django 附带了一组记录器,如 django、django.requests、等。

现在输入以下命令,然后按回车键。


python manage.py runserver

它将创建一系列日志,这是因为默认的调试级别。所有这些日志实际上都是来自默认记录器的消息。我们还可以在连续的文件中创建自定义记录器。如下图所示,javapoint-debug . log 文件已经创建,它包含了所有的日志记录。

有大量日志错误或警告或以上级别应通知。

结论

日志是开发人员的重要工具。如果程序员正确实现,可以降低复杂度,节省大量时间。日志处理程序可以很容易地处理日志,并且可以很容易地跟踪事件,不管它是否发生,以及原因。