django日志,django-crontab,django邮件模块
django 日志
四大块,格式器,过滤器,处理器,日志管理器
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {# 日志格式
'standard': {
'format': '%(asctime)s [%(threadName)s:%(thread)d] '
'[%(pathname)s:%(funcName)s:%(lineno)d] [%(levelname)s]- %(message)s'}
},
'filters': {# 过滤器
'test':{
'()': 'ops.TestFilter'
}
},
'handlers': {# 处理器
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
'error_handler': {# error内容输出到另外的文件
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOG_DIR,'error.log'),#日志输出文件
'maxBytes':1024*1024*5,#文件大小
'backupCount': 5,#备份份数
'formatter':'standard',#使用哪种formatters日志格式
'encoding': 'utf8',
},
'file_handler': {# 记录到日志文件(需要创建对应的目录,否则会出错)
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOG_DIR,'service.log'),# 日志输出文件
'maxBytes':1024*1024*5,#文件大小
'backupCount': 5,#备份份数
'formatter':'standard',#使用哪种formatters日志格式
'encoding': 'utf8',
},
'console_handler':{# 输出到控制台
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'standard',
},
},
'loggers': {# logging管理器
'django': {
# 'handlers': ['console_handler', 'file_handler', 'error_handler'],
'handlers': ['console_handler', 'file_handler'],
'filters': ['test'],
'level': 'DEBUG'
}
}
}
import os
import django
import logging os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
django.setup() def logger_demo():
logger = logging.getLogger('django')
logger.info('hello world')
logger.info('hello world [FILTER FLAG]') logger.debug('debug message') logger.error('error message') if __name__ == '__main__':
logger_demo()
django-crontab 在win中不可用
crontab
https://lupython.gitee.io/2017/10/08/%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/
crontab 在django中提交给linux服务器使用
安装
pip3 install django-crontab
配置setting中增加app:django_crontab
#每一分钟执行一次
CRONJOBS = [
('*/1 * * * *', 'cron.jobs.demo')
]
'0 12 * * *', 'cron.jobs.demo' #每天12点整执行一次
'0 12 * * 1-5', 'cron.jobs.demo' #周一到周五每天12点整执行一次
在cron文件夹下jobs.py 添加demo函数,放执行代码
也可以添加打印到log:
import logging
logger=logging.getLogger('django')
demo函数中最后放入logger.info(打印内容)
linux中查看crontab :
python3 manage.py crontab show
或者查看系统是否有定时任务:crontab -l
crontab -e 查看详细
linux中添加crontab :
python3 manage.py crontab add
除了show,add以及还有remove/run命令
打印django日志
cd log/
ls
tail -f service.log
django邮件模块
简单邮件传输协议simple mail transfer protocol
smtp服务使用tcp端口25,加密通道端口是465
使用QQ邮箱smtp服务需要授权码
qq邮箱setting-开启服务:IMAP/SMTP服务
授权码:gwmwrhyhdtynbhag
django-settings中配置
# Email config
# QQ邮箱 SMTP 服务器地址
EMAIL_HOST = 'smtp.qq.com'
# 端口
EMAIL_PORT = 465
# 发送邮件的邮箱
EMAIL_HOST_USER = 'dujun31@vip.qq.com'
# 在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = 'gwmwrhyhdtynbhag'
# 开启TLS
EMAIL_USE_TLS = True
# 收件人看到的发件人
EMAIL_FROM = 'dujun31@vip.qq.com'
django测试列子
import os
import django
import smtplib
from backend import settings from email.mime.text import MIMEText os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
django.setup() def send_mail():
msg = MIMEText("邮件通道测试", "plain", "utf-8")
msg['FROM'] = "Mail Test"
msg['Subject'] = "【Mail Test】"
receivers = ['349553119@qq.com']
server = smtplib.SMTP_SSL(settings.EMAIL_HOST, settings.EMAIL_PORT)
server.set_debuglevel(1)
server.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD)
server.sendmail(settings.EMAIL_FROM, receivers, msg.as_string())
server.close()
pass if __name__ == '__main__':
send_mail()

django日志,django-crontab,django邮件模块的更多相关文章
- 运维开发笔记整理-django日志配置
运维开发笔记整理-django日志配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Django日志 Django使用python内建的logging模块打印日志,Pytho ...
- Django日志
Django日志 简单的Django日志 在settings里配置,会在屏幕输出日志 LOGGING = { 'version': 1, 'disable_existing_loggers': Fal ...
- python的日志模块:logging;django的日志系统;django日志输出时间修改
Django的log,主要是复用Python标准库中的logging模块,在settings.py中进行配置 源代码 1.__init__.py包含以下类: StreamHandler Formatt ...
- Django 日志
Django使用Python内置的logging模块实现它自己的日志系统. 如果你没有使用过logging模块,请参考Python教程中的相关章节. 直达链接<logging模块详解>. ...
- Django日志系统
在Django中使用的日志系统是基于Python中的loggin模块. 首先简单介绍下logging. 一 Loggin模块简介 loggin模块主要包含以下四个部分: Loggers ...
- Django(37)配置django日志
前言 django框架的日志通过python内置的logging模块实现的,既可以记录自定义的一些信息描述,也可以记录系统运行中的一些对象数据,还可以记录包括堆栈跟踪.错误代码之类的详细信息. ...
- 第六章:Django 综合篇 - 14:Django 日志
Django使用Python内置的logging模块实现它自己的日志系统. 如果你没有使用过logging模块,请参考Python教程中的相关章节. 直达链接<logging模块详解>. ...
- Django学习之六:Django 常用模块导入记忆
Django 常用模块导入记忆 django相关 1. urls相关操作 from django.urls import path, re_path, include from django.urls ...
- django 日志logging的配置以及处理
django日志官方文档https://docs.djangoproject.com/en/1.11/topics/logging/ 本文摘自http://davidbj.blog.51cto.com ...
随机推荐
- 646. Maximum Length of Pair Chain(medium)
You are given n pairs of numbers. In every pair, the first number is always smaller than the second ...
- axios拦截器
import axios from "axios"; axios.interceptors.response.use(response => { //=>设置响应拦截器 ...
- vue2.0里的路由钩子
路由钩子 在某些情况下,当路由跳转前或跳转后.进入.离开某一个路由前.后,需要做某些操作,就可以使用路由钩子来监听路由的变化 全局路由钩子: router.beforeEach((to, from, ...
- AngularJS 1.x系列:Node.js安装及npm常用命令(1)
1. Node.js安装 1.1 Node.js下载 Node.js官网:https://nodejs.org 当前下载版本(含npm):Latest LTS Version: v6.10.3 (in ...
- 二、IIS部署WebApi
一.项目发布 二.hosts 更改 C:\Windows\System32\drivers\etc 三.网站搭建 之后我将端口默认更改 8001 以防与80端口冲突 注意: 1.先测试IIS的lo ...
- [SimplePlayer] 3. 视频帧同步
Frame Rate 帧率代表的是每一秒所播放的视频图像数目.通常,视频都会有固定的帧率,具体点地说是每一帧的时间间隔都是一样的,这种情况简称为CFR(Constant Frame Rate);另外一 ...
- UVA 10118 Free Candies
https://vjudge.net/problem/UVA-10118 题目 桌上有4堆糖果,每堆有$N$($N\leqslant 40$)颗.有个熊孩子拿了个可以装5颗糖的篮子,开始玩无聊的装糖游 ...
- mysql主从复制、redis基础、持久化和主从复制
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...
- webpack学习记录 - 学习webpack-dev-server(三)
怎么用最简单的方式搭建一个服务器? 首先安装插件 npm i --save-dev webpack-dev-server 然后修改 packet.json 文件 "scripts" ...
- vue学习笔记(四)- cmd无法识别vue命令解决方法
解决控制台无法识别vue命令问题 作者:狐狸家的鱼 本文链接:cmd无法识别vue命令解决方法 GitHub:sueRimn 在控制台输入vue会报以下错误: vue : 无法将“vue”项识别为 c ...