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

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

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

让我们从简要介绍日志记录模块开始。

什么是日志记录?

日志记录是一种允许开发人员跟踪软件执行过程中某些事件的技术。这是开发人员的最重要工具。日志记录有助于维护软件,也是开发人员的额外一双眼睛。

它跟踪发生的每一个事件。在实施日志记录模块后,我们可以轻松找出哪个部分引发了错误。这种方法使我们能够快速解决错误。

它是如何工作的?幕后

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

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

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

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

日志记录模块的组件

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

  • 记录器(Loggers)

开发人员处理记录器; 这与在调用它们时将要调用的函数相同。当我们调用该函数时,它提供详细的报告。记录器可以生成多个级别的响应。

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

  • 处理程序(Handlers)

处理程序用于生成信息。这类似于将信息传输的报纸。我们可以通过在日志文件中提及信息(默认行为)来实现这一点。日志记录模块提供了许多处理程序。

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

  • 筛选器(Filters)

筛选器用于处理从记录器传递到处理程序的日志记录。顾名思义,它会筛选消息。可以为多个消息提供多个处理程序。默认情况下,满足日志级别要求的任何日志消息都将被处理。

我们可以在记录器和处理程序中使用筛选器。

  • 格式化程序(Formatters)

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

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

Django中的日志记录

日志模块可以在Django中轻松实现并进行配置。

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

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

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

创建新项目

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

django-admin startproject javatiku 

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

配置设置

这是在Django中实施记录器的第一步。配置settings.py相当容易。我们需要定义以下内容 -

  • 记录器(Loggers)
  • 处理程序(Handlers)
  • 筛选器(Filters)
  • 格式化程序(Formatters)

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

# Javatiku #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')  
        },  
    },  
}  

让我们来分解上面的代码 -

代码可能看起来很大且复杂,但很容易理解。我们从Django中有一个名为LOGGING的内置变量。由于我们正在使用一个称为dictConfig方法的字典来配置设置,因此日志的默认值来自此字典。

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

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

  1. 版本(version)
  2. 禁用现有的记录器(disable_existing_loggers)
  3. 处理程序(handlers)
  4. 记录器(loggers)

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

接下来的键是disable_exiting_loggers,它指定不要禁用记录器。默认情况下,Django附带其记录器。这些记录器与Django的ORM和Django的内部部分相连。默认情况下,该键为true,因此它禁用了这些记录器。

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

1. FileHandler: logger-name -filehandler

FileHandler将日志存储在文件中。正如您可以在上面的代码中看到的,我们已将文件名设置为javatiku-debug.log。日志文件通常以扩展名.存储。我们需要具有对其进行更改的权限。

2. StreamHandler: logger name - console

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

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

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

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

现在键入以下命令并按Enter键。

python manage.py runserver  

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

313.png

有许多日志错误或警告或更高级别都将得到通知。

结论

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

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程