Django开发中的日志输出的方法

yizhihongxing

区分不同的日志等级是我们在Django开发过程中最常用的日志输出方法。下面是使用Python logging模块进行日志输出的完整攻略,包括代码示例。

步骤1:在Django配置文件中配置logging模块

在settings.py文件中进行下列配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': BASE_DIR + "/logs/django.log",
            'maxBytes': 1024 * 1024 * 5,
            'backupCount': 5,
            'formatter': 'verbose'
        },
        'console': {
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
    },
    'formatters': {
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(module)s %(process)d %(thread)d %(message)s]',
            'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
        },
        'django.request': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'myapp': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    }
}

该配置在Logging字典的各个部分,将使用哪几种级别日志输出写入了配置文件中。

步骤2:将logging模块作为实用工具使用于视图函数等代码中

在views.py文件(或其它需要进行日志输出的代码文件)中,将日志记录器作为实用工具使用:

import logging

logger = logging.getLogger('myapp')

def index(request):
    logger.debug('This is a debug message')
    logger.info('This is an information message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')
    context = {}
    return render(request, 'index.html', context)

使用Django日志记录器输出的示例:

logger.debug('This is a debug message')
logger.info('This is an information message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

以上两行代码将产生5个级别的日志输出,分别为DEBUG(调试)、INFO(信息)、WARNING(警告)、ERROR(错误)、CRITICAL(严重错误)。

步骤3:查看日志输出

Django的日志消息将会保存在日志文件中,如果我们将handlers配置的文件句柄为console,则同样会在控制台中输出日志消息。如果想查看日志消息,可以使用以下命令:

tail -f 路径/<appname>.log

例如,在Django应用名称为myapp的情况下,要查看myapp日志文件中的输出日志,请执行:

tail -f 路径/myapp.log

以上日志文件中将输出所有myapp应用中输出的日志消息。

示范效果:

以下是一个示例日志输出内容:

[2019-04-17 14:54:19] DEBUG [myapp.views 18304 123145591207680] This is a debug message
[2019-04-17 14:54:19] INFO [myapp.views 18304 123145591207680] This is an information message
[2019-04-17 14:54:19] WARNING [myapp.views 18304 123145591207680] This is a warning message
[2019-04-17 14:54:19] ERROR [myapp.views 18304 123145591207680] This is an error message
[2019-04-17 14:54:19] CRITICAL [myapp.views 18304 123145591207680] This is a critical message

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django开发中的日志输出的方法 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django初始化项目环境

    Django是一个高效、可扩展、开放源代码的Web框架,它基于Python编程语言开发,并使用了一系列的组件和技术,为Web应用的开发提供了强大的支持和便利。如果你想在Django中成功构建一个Web应用程序,那么首先必须对Django项目的初始化和环境搭建有一定的了解和掌握。 下面就来详细介绍一下Django初始化项目环境的步骤和注意事项。 安装Pytho…

    Django 2023年3月12日
    00
  • django-admin引用百度地图

    实现的功能有,某个地点对应的经纬度自动填上,如果有经纬度的话,自动显示对应经纬度的地点,密匙在去百度地图引用搜索 <script type=”text/javascript” src=”http://api.map.baidu.com/api?v=2.0&ak=密匙”></script> <!–根据地址判断是否是添加批…

    Django 2023年4月12日
    00
  • django实现api跨域请求访问

    第一步:安装 django-cors-headers pip install django-cors-headers   第二步:配置settings.py文件 ———————–和前端配合指定可以跨域的用户—————————- from corsheaders.defaults import …

    Django 2023年4月11日
    00
  • Django form表单

    我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。 总结一下,其实f…

    Django 2023年4月11日
    00
  • Django路由反向解析与命名空间详解

    Django路由反向解析是一个非常重要的功能,它可以让我们在代码中使用路由别名替代URL路径,在修改URL时避免代码中的硬编码依赖,同时也可以提高可读性和可维护性。本文将详细介绍Django路由反向解析的基本概念、使用方式和相关技巧。 基本概念 Django路由反向解析是指通过别名或名称来动态生成URL路径的过程。在Django中,路由可以通过name属性或…

    Django 2023年3月12日
    00
  • 简单介绍Python的Django框架的dj-scaffold项目

    Python的Django框架是一个非常流行的Web开发框架,可以让开发人员快速构建高质量的Web应用程序。Django框架的dj-scaffold项目是一个用于快速创建Django应用程序的命令行工具,它可以在几分钟内创建完整的Django应用程序骨架。下面详细介绍dj-scaffold的使用过程。 安装dj-scaffold 首先需要安装dj-scaff…

    Django 2023年5月16日
    00
  • Django实现数据表数据插入

    数据表数据插入是Django中非常重要的操作之一,下面是详解Django实现数据表数据插入完整攻略: 定义模型 首先,你需要定义你的数据表,这可以通过在应用程序中定义一个模型类来实现。例如,我们创建了一个名为“Book”的应用程序,可以在models.py中定义如下的模型: from django.db import models class Book(mo…

    Django 2023年3月12日
    00
  • 基于Django contrib Comments 评论模块(详解)

    完整攻略:基于Django contrib Comments 评论模块(详解) 安装Django contrib 首先,在你的Django项目中安装Django contrib: pip install django-contrib-comments 添加评论到你的模型中 在你的模型中,你需要导入comments模块,然后在你的模型中添加一个评论字段,例如:…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部