1、以dict的方式配置在settings.py中

# 日志文件简单配置
'''
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"file": {
"level": "DEBUG",
"class": "logging.FileHandler",
"filename": os.path.join(os.path.dirname(BASE_DIR),"logs/debug.log"),
},
},
"loggers": {
"django": {
"handlers": ["file"],
"level": "DEBUG",
"propagate": True,
},
},
}
'''
# Logging
# 日志文件规范配置
LOG_DIR = os.path.join(BASE_DIR, 'logs')
os.makedirs(LOG_DIR, exist_ok=True) # 日志配置
LOGGING = {
'version': 1, #使用的python内置的logging模块,那么python可能会对它进行升级,所以需要写一个版本号,目前就是1版本
'disable_existing_loggers': False, #是否去掉目前项目中其他地方中以及使用的日志功能,但是将来我们可能会引入第三方的模块,里面可能内置了日志功能,所以尽量不要关闭。
'formatters': { #日志记录格式
'standard': { # asctime记录时间,filename 表示日志发生的文件名称,funcName模块方法名,lineno行号,levelname等级,message错误信息
'format': '[%(asctime)s]->%(filename)s->%(funcName)s->line:%(lineno)d [%(levelname)s]%(message)s'
},
'simple': {
'format': '%[%(asctime)s]->(levelname)s->%(module)s->%(lineno)d->%(message)s'
},
},
'filters': { #过滤器:可以对日志进行输出时的过滤用的
'require_debug_true': { #在debug=True下产生的一些日志信息,要不要记录日志,需要的话就在handlers中加上这个过滤器,不需要就不加
'()': 'django.utils.log.RequireDebugTrue',
},
'require_debug_false': { #和上面相反
'()': 'django.utils.log.RequireDebugFalse',
},
},
'handlers': { #日志处理方式,日志实例,向哪里输出
'console': { #在控制台输出时的实例
'level': 'INFO', #日志等级;debug是最低等级,那么只要比它高等级的信息都会被记录
'filters': ['require_debug_true'], #在debug=True下才会打印在控制台
'class': 'logging.StreamHandler', #使用的python的logging模块中的StreamHandler来进行输出
'formatter': 'simple'
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
# 日志位置,日志文件名,日志保存目录必须手动创建
'filename': os.path.join(LOG_DIR, "my_django.log"), #注意,你的文件应该有读写权限。
# 日志文件的最大值,这里我们设置300M
'maxBytes': 300 * 1024 * 1024, # B
# 日志文件的数量,设置最大日志数量为10
'backupCount': 10,
# 日志格式:详细格式
'formatter': 'standard',
'encoding': 'utf-8', # 设置默认编码,否则打印出来汉字乱码
},
},
# 日志对象
'loggers': {
'django': { #和django结合起来使用,将django中之前的日志输出内容的时候,按照我们的日志配置进行输出,
'handlers': ['console', 'file'], #将来项目上线,把console去掉
'propagate': True, #冒泡:是否将日志信息记录冒泡给其他的日志处理系统,工作中都是True,不然django这个日志系统捕获到日志信息之后,其他模块中可能也有日志记录功能的模块,就获取不到这个日志信息了
},
}
}

2、django中使用

import logging
logger = logging.getLogger('django') # Create your views here. class IndexView(generic.ListView):
template_name = "polls/index.html"
context_object_name = "latest_question_list"
logger.info('test log')
def get_queryset(self):
#Return the last five published questions.
return Question.objects.filter(pub_date__lte=timezone.now()).order_by("-pub_date")[:5]

3、启动django,测试查看

打开浏览器,进入网址,http://127.0.0.1:8000/polls/

查看生成的日志文件:vim  ./mysite/logs/my_django.log

[2023-04-24 11:44:22,623]->autoreload.py->run_with_reloader->line:637 [INFO]Watching for file changes with StatReloader
[2023-04-24 11:44:22,639]->views.py->IndexView->line:16 [INFO]test log
[2023-04-24 11:44:27,869]->basehttp.py->log_message->line:161 [INFO]"GET /polls/1/ HTTP/1.1" 200 530
[2023-04-24 11:44:28,361]->basehttp.py->log_message->line:161 [INFO]"POST /polls/1/vote/ HTTP/1.1" 200 586

-----------------------------------end-----------------------------------

Django项目如何配置日志文件信息的更多相关文章

  1. 1、创建Django项目并配置settings文件

    一.先安装Django第三方库 二.创建项目 新建好项目的目录是这样的 迁移数据库,注意:没有安装pymysql的需要通过pip install pymysql安装. 三.创建模块 四.设置setti ...

  2. Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery

    前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...

  3. Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)

    摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作,暂时全部 ...

  4. Django项目基础配置和基本使用

    博文配置内容包括: django项目的创建 django项目下应用的创建及配置 数据库的配置 templates模板的配置 命令行创建项目: 在需要的目录下创建Django项目输入命令:django- ...

  5. 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!

    擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...

  6. django项目外部的脚本文件执行ORM操作,无需配置路由、视图启动django服务

    #一.将脚本路径添加到python的sys系统环境变量里 import sys # sys.path.append('c:/Users/Administrator/www/mymac') #第一种.绝 ...

  7. log4j配置日志文件log4j.appender.R.File相对路径方法

    方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...

  8. Log4j中配置日志文件相对路径

    方法一. 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs ...

  9. Django day30 自定义配置settings文件,分页器,版本控制

    一:自定义配置settings文件 1.有两套配置文件,默认配置,用户的配置 2.如果某个字段,用户配置了,就用用户的,如果没配置,就用默认的 二:分页器 1.三种分页: # 普通分页 from re ...

  10. 荣誉墙项目day26 django 项目路由配置

    项目路由配置文件包括:配置目录里的urls.py文件和各个app目录里的urls.py文件 1.include()——从项目主路由分配到各APP主路由 from django.conf.urls im ...

随机推荐

  1. 部署kubernetes-dashboard改成http免密登录

    原始链接地址 https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 修改S ...

  2. 融云技术分享:全面揭秘亿级IM消息的可靠投递机制

    本文由融云技术团队原创分享,原题"IM 消息同步机制全面解析",为使文章更好理解,对内容进行了重新归纳和细节修订. 1.内容概述 即时通讯(IM)系统最基础.最重要的是消息的及时性 ...

  3. 开源即时通讯IM框架 MobileIMSDK v6.2 发布

    一.更新内容简介 本次更新为次要版本更新,进行了若干优化(更新历史详见:码云 Release Nodes).可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架. ...

  4. OpenMMLab AI实战营 第三课笔记

    OpenMMLab AI实战营 第三课笔记 目录 OpenMMLab AI实战营 第三课笔记 进入 mmclassification 目录 导入工具包 下载数据集 数据集目录结构 下载 config ...

  5. 使用AI进行Web功能测试的方法

    在使用Python和Selenium进行Web功能测试时,引入AI(人工智能)通常可以用于改善测试效率和覆盖范围.以下是一些使用AI进行Web功能测试的方法: 智能元素定位: 使用AI技术来改进元素的 ...

  6. .Net Core 管道底层源码实现

    在 .NET Core 中,请求处理管道是一个中间件(Middleware)链,用于处理 HTTP 请求并生成响应.管道的底层实现基于 Microsoft.AspNetCore.Http 命名空间中的 ...

  7. MongoDB:使用场景简介

  8. Permutation Swaps

    Permutation Swaps 传送门 题目理解 第一个操作:把第i个数移到位置p[i](1<=i<=n) ​发现:这个操作其实就是循环移位,有Teleporter的经验在前,此操作可 ...

  9. dart类型转换和类型判断

    1==>dart运算符 + - * / ~/ 这个取整 %(取余) var a1 = 10; var b2 = 3; print(a1 ~/ b2);//输出的值是三 02==>比较运算符 ...

  10. EIP和NAT结合如何实现统一公网出口IP

    本文分享自天翼云开发者社区<EIP和NAT结合如何实现统一公网出口IP>,作者:j****n 通过EIP和NAT网关结合,为已绑定EIP的ECS实例统一公网出口IP,有利于更高效的管理互联 ...