Django 中的日志记录器

Django 中的日志记录器

作为开发人员,遇到错误并解决这些问题需要一些时间。

当我们知道实际问题以及错误发生的时间时,会更有帮助。这意味着 Python 的错误消息非常有帮助。

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

我们先来简要介绍一下日志记录模块。

日志记录是什么

日志记录是一种技术,允许开发人员跟踪软件执行过程中的某些事件。这是开发人员最重要的工具之一。日志记录有助于维护软件,并为开发人员提供额外的监视能力。

它可以追踪所有时间发生的每个事件。在实施日志记录模块后,我们可以轻松找到哪个部分会导致错误。这种方法使我们能够快速解决错误。

它是如何工作的?幕后

一个独立的程序处理日志记录,这个日志记录程序实际上就是一个文件写入器。日志记录器用于以文本格式记录特定事件。记录的信息然后保存在文件中。这些文件被称为日志,保存为 log 扩展名。它们包含了发生的事件的日志。

Python 提供了日志记录模块,其中包含了额外的功能。我们将讨论日志记录模块的各种功能。日志记录模块可以处理以下任务 –

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

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

日志记录模块的组件

日志记录模块主要由四个组件组成。我们将逐个讨论每个组件。

  • 日志记录器

开发人员与日志记录器打交道,它们是在调用时将被调用的函数。当我们调用该函数时,它提供了一个详细的报告。日志记录器可以生成多个级别的响应。

我们也可以根据需求进行修改。

  • 处理器

处理器用于生成信息。它就像一个传递信息的报纸。我们可以通过在日志文件中提到信息来实现这一点(默认行为)。日志记录模块提供了许多处理器。

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

  • 过滤器

过滤器用于处理从日志记录器传递到处理器的日志记录。顾名思义,它过滤消息。对于多个消息,可能有多个处理器可用。默认情况下,任何满足日志级别要求的日志消息都将被处理。

我们可以在日志记录器和处理器中使用过滤器。

  • 格式化器

格式化器用于格式化数据。处理程序的问题在于它们无法将信息以Python数据类型的形式发送。要发送此类信息,我们需要首先进行转换。

日志默认是以日志记录格式存储的,logging模块进行了预定义。我们可以直接通过互联网发送信息,也可以以文本文件的形式发送。要转换格式,我们需要使用格式化器。

Django中的日志记录

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

要在Django中使用日志记录器,我们需要按照以下步骤进行操作。

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

让我们开始使用Django中的日志记录器的过程。

创建一个新项目

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

django-admin startproject javatpoint

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

配置设置

这是在Django中实施日志记录的步骤1。配置settings.py非常简单。我们需要定义以下内容 –

  • Loggers
  • Handlers
  • Filters
  • Formatters

我们使用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。由于我们使用一个名为 dictConfig 的字典来配置设置。日志的默认值来自这个字典。

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

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

  1. 版本
  2. disable_existing_loggers
  3. handlers
  4. loggers

版本 键指定模式版本。它有一个值,默认值为1。

下一个键是 disable_exiting_loggers, 它指定不要禁用记录器。默认情况下,Django带有其自己的记录器。这些记录器与Django ORM和Django的内部部分连接在一起。默认情况下,该键为true,因此它会禁用这些记录器。

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

1. FileHandler:logger-name -filehandler

FileHandler将日志存储在文件中。正如您在上面的代码中所观察到的,我们将文件名设置为 javatpoint-debug.log 。日志文件通常使用 .扩展名 存储。我们需要有权限对其进行更改。

2. StreamHandler:logger name – console

流处理程序将日志流式传输到控制台上。不建议使用此方法。命令行只能显示有限数量的字符。对于大量日志数据,我们需要使用文件处理程序。

还有更多的处理程序,例如 mailhandlers,AdminEmailHandlers 等。

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

Django带有一系列记录器,例如 django, django.requests 等。

现在输入以下命令并按回车键。

python manage.py runserver

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

Django 中的日志记录器

有许多日志错误或警告或以上级别需要通知。

结论

日志记录是开发人员的重要工具。如果程序员正确实现了它,它可以减少复杂性并节省大量时间。日志处理程序容易处理日志,并且可以轻松追踪事件发生与否以及原因。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程