前言

Django对于日志输出的信息是很完善的,request的信息,setting配置,trackback的信息,一应俱全,足够我们调试了。但是在线上环境,如果让用户看到这些信息,是很不安全的(暴露代码)。所以在线上我们要关闭Debug,但是又不能扔掉这些调试信息,这就要用到logging模块。
logging模块其实是Python的模块,在Django中有很多本地化的支持。
理解Logger
首先要理解logging的工作,这里面主要有四个东西:格式器formatter,过滤器filter,处理器handler,日志实例logger。
处理流程
formatter
logger ----> handler ----------------> files, emails
filter
处理流程是这样的。首先,在代码中。我们拿到的是logger实例,通过这个实例来记录信息。
# import the logging library
import logging
# Get an instance of a logger
logger = logging.getLogger('django')
def my_view(request, arg1, arg):
...
if bad_mojo:
# Log an error message
logger.error('Something went wrong!')
然后,名字是django的这个logger就会把信息交给相应的handler,handler把信息用formater和filter处理一下,提交log(保存到文件,数据库,或者发送邮件)。
一般来说,handler可以是send_email,error_file等负责处理的方式,在logger中可以重复使用handler。例如我们的django处理器使用了send_email, error_file 这两个处理器,request处理器使用error_file,info_file两个处理器,logger和handler可以理解成多对多的关系,嘻嘻。
配置方式
Python中可以使用多种格式配置logging,比如.conf, .ini等。
在Django中,我们是把有关logging的配置写到settings里面。相应的配置及解释如下(仅供参考)。
#管理员邮箱
ADMINS = (
('laixintao','*******@163.com'),
)
#非空链接,却发生404错误,发送通知MANAGERS
SEND_BROKEN_LINK_EMAILS = True
MANAGERS = ADMINS
#Email设置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST= 'smtp.163.com'#QQ邮箱SMTP服务器(邮箱需要开通SMTP服务)
EMAIL_PORT= 25 #QQ邮箱SMTP服务端口
EMAIL_HOST_USER = '**********@163.com' #我的邮箱帐号
EMAIL_HOST_PASSWORD = '**************' #授权码
EMAIL_SUBJECT_PREFIX = 'website' #为邮件标题的前缀,默认是'[django]'
EMAIL_USE_TLS = True #开启安全链接
DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER #设置发件人
#logging日志配置
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {#日志格式
'standard': {
'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}
},
'filters': {#过滤器
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
}
},
'handlers': {#处理器
'null': {
'level': 'DEBUG',
'class': 'logging.NullHandler',
},
'mail_admins': {#发送邮件通知管理员
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'filters': ['require_debug_false'],# 仅当 DEBUG = False 时才发送邮件
'include_html': True,
},
'debug': {#记录到日志文件(需要创建对应的目录,否则会出错)
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, "log",'debug.log'),#日志输出文件
'maxBytes':1024*1024*5,#文件大小
'backupCount': 5,#备份份数
'formatter':'standard',#使用哪种formatters日志格式
},
'console':{#输出到控制台
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'standard',
},
},
'loggers': {#logging管理器
'django': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': False
},
'django.request': {
'handlers': ['debug','mail_admins'],
'level': 'ERROR',
'propagate': True,
},
# 对于不在 ALLOWED_HOSTS 中的请求不发送报错邮件
'django.security.DisallowedHost': {
'handlers': ['null'],
'propagate': False,
},
}
}
以上的配置文件中,有三个日志处理器。分别是:
最后,不要忘了给日志的路径响应的权限。比如Apache2服务器,就需要给www-data写权限:
sudo chown -R [yourname]:www-data [log] sudo chmod -R g+s [log]
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# django
# 配置logging
# 日志配置
# 日志文件
# Django logging日志模块实例详解(日志记录模板配置)
# Django实现的自定义访问日志模块示例
# django中日志模块logging的配置和使用方式
# 发送邮件
# 线上
# 网易
# 的是
# 是一个
# 我是
# 就会
# 给你
# 才是
# 是这样
# 中有
# 帐号
# 这两个
# 这就
# 要用
# 可以使用
# 正常使用
# 又不
# 写到
# 管理器
相关文章:
javascript中的try catch异常捕获机制用法分析
如何在云主机上快速搭建多站点网站?
建站主机功能解析:服务器选择与快速搭建指南
网站制作价目表怎么做,珍爱网婚介费用多少?
如何选择网络建站服务器?高效建站必看指南
已有域名建站全流程解析:网站搭建步骤与建站工具选择
西安大型网站制作公司,西安招聘网站最好的是哪个?
建站主机选哪家性价比最高?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
高防服务器租用首荐平台,企业级优惠套餐快速部署
,巨量百应是干嘛的?
建站之星在线版空间:自助建站+智能模板一键生成方案
用v-html解决Vue.js渲染中html标签不被解析的问题
相册网站制作软件,图片上的网址怎么复制?
如何在新浪SAE免费搭建个人博客?
如何选择最佳自助建站系统?快速指南解析优劣
如何通过服务器快速搭建网站?完整步骤解析
如何在阿里云部署织梦网站?
如何自定义建站之星模板颜色并下载新样式?
建站主机选哪种环境更利于SEO优化?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
建站之星如何保障用户数据免受黑客入侵?
php json中文编码为null的解决办法
建站主机助手选型指南:2025年热门推荐与高效部署技巧
如何在阿里云ECS服务器部署织梦CMS网站?
手机网站制作与建设方案,手机网站如何建设?
建站上市公司网站建设方案与SEO优化服务定制指南
定制建站价位费用解析与套餐推荐全攻略
如何用y主机助手快速搭建网站?
如何正确下载安装西数主机建站助手?
Java解压缩zip - 解压缩多个文件或文件夹实例
哈尔滨网站建设策划,哈尔滨电工证查询网站?
Android自定义listview布局实现上拉加载下拉刷新功能
实现虚拟支付需哪些建站技术支撑?
如何基于PHP生成高效IDC网络公司建站源码?
活动邀请函制作网站有哪些,活动邀请函文案?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
小型网站制作HTML,*游戏网站怎么搭建?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
javascript基本数据类型及类型检测常用方法小结
如何在宝塔面板中修改默认建站目录?
如何挑选高效建站主机与优质域名?
深入理解Android中的xmlns:tools属性
历史网站制作软件,华为如何找回被删除的网站?
如何在服务器上三步完成建站并提升流量?
在线教育网站制作平台,山西立德教育官网?
如何通过山东自助建站平台快速注册域名?
公司网站制作价格怎么算,公司办个官网需要多少钱?
*请认真填写需求信息,我们会在24小时内与您取得联系。