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

区分不同的日志等级是我们在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 Model继承模型

    Django Model继承模型是一种常用的模型设计方式,可以减少重复的代码,提高代码的可维护性。 本篇文章将详细介绍Django Model继承模型的完整攻略,包括继承模型的类型、实现继承模型的方法和示例代码。 继承模型类型 Django Model继承模型主要分为三种类型: (1) 单表继承 单表继承,也称为表里继承或者全在一个表里的继承,是指子类和父类…

    Django 2023年3月12日
    00
  • django之froms组件

    一:froms组件的作用   在我们进行web端的开发的时候,常常用到对表单的数据的获取并发送给后台,无论是对通过from表单提交还是通过ajax提交。我们都免不了对表单输入框的数据进行获取,在后端对数据进行验证并把验证结果再返回前端页面。常常有些验证逻辑很繁琐,一个不小心可能会出错,大费心力。而djingo自带的from组件,可以对表单自动生成,表单数据验…

    Django 2023年4月12日
    00
  • Django框架视图函数设计示例

    接下来我将详细讲解“Django框架视图函数设计示例”的完整攻略,该攻略将包括两条示例说明。 1. 示例一:实现基本的GET请求和POST请求 在Django框架中,视图函数是用来响应URL请求的函数,包含了对请求的处理逻辑。下面是一个简单的视图函数示例,演示了如何实现基本的GET请求和POST请求: from django.shortcuts import…

    Django 2023年5月16日
    00
  • Django使用第三方模块django-password-reset重置密码

    网上关于django第三方模块django-password-reset重置密码的几篇博客有一个严重的bug 见博客:https://blog.csdn.net/qq_42820268/article/details/81940353 中的内容。 关键是:上文提到的urls.py配置, 出现错误,并提出解决办法,实际上并没有解决,应该写为:url(r’^pw…

    Django 2023年4月13日
    00
  • Django密码系统实现过程详解

    请看下文详细的讲解: Django密码系统实现过程详解 密码系统简介 Django是一个为快速开发高质量Web应用程序而设计的Python Web框架。其中一个重要的功能就是密码系统。Django内置的密码系统提供了方便、强大和安全的用户认证。该密码系统在用户提交密码时,将密码进行哈希运算和加密,然后存储在数据库中,以保证用户数据的安全性。 密码系统的实现步…

    Django 2023年5月16日
    00
  • Django Auth装饰器验证用户身份与权限

    Django Auth装饰器是一种基于装饰器的身份验证和授权工具,它可以帮助你快速而简便地限制用户的访问权限。在本文中,我们将深入了解Django Auth装饰器,并提供详细的代码示例,以便帮助你更好地理解它们的实现。 Django Auth装饰器的基本用法 Django Auth装饰器有多种用途,但最常用的就是验证用户身份。下面就是它的最基本用法: fro…

    Django 2023年3月13日
    00
  • Django admin实现图书管理系统菜鸟级教程完整实例

    我会提供详细的攻略,包含两个示例说明。 示例一:安装Django 首先,我们需要安装Django。我们可以通过以下步骤来完成: 确定Python版本:Django要求Python 3.6及以上版本。可以通过运行以下命令确定Python版本: python -V 安装pip:pip是Python包管理器,我们可以使用pip来安装Django。在终端中运行以下命…

    Django 2023年5月16日
    00
  • vscode搭建python Django网站开发环境的示例

    下面就是针对“vscode搭建python Django网站开发环境”的完整攻略。 示例一 步骤一:安装Visual Studio Code 首先,我们需要安装Visual Studio Code,这是一款非常流行的跨平台轻量级IDE,使用非常便捷。可以在官网下载到符合自己系统版本的安装包:https://code.visualstudio.com 步骤二:…

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