2016-08-24

需求

在我们的真实环境中当我们出现错误的时候我们要记录下来,便于我们分析差错。

关于日志的代码文件

 # 自定义日志输出信息
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': {
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},
'default': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': 'log/all.log', #日志输出文件
'maxBytes': 1024*1024*5, #文件大小
'backupCount': 5, #备份份数
'formatter':'standard', #使用哪种formatters日志格式
},
'error': {
'level':'ERROR',
'class':'logging.handlers.RotatingFileHandler',
'filename': 'log/error.log',
'maxBytes':1024*1024*5,
'backupCount': 5,
'formatter':'standard',
},
'console':{
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'standard'
},
'request_handler': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': 'log/script.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter':'standard',
},
'scprits_handler': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename':'log/script.log',
'maxBytes': 1024*1024*5,
'backupCount': 5,
'formatter':'standard',
}
},
#日志器设置
'loggers': {
'django': {
'handlers': ['default', 'console'],
'level': 'DEBUG',
'propagate': False
},
'django.request': {
'handlers': ['request_handler'],
'level': 'DEBUG',
'propagate': False,
},
'scripts': {
'handlers': ['scprits_handler'],
'level': 'INFO',
'propagate': False
},
'blog.views': {
'handlers': ['default', 'error'],
'level': 'DEBUG',
'propagate': True
},
}
}
  • 代码中定义了日志的输出位置:

  • 所以我们要创建一个叫做log 的目录,用于存放项目的文件:

  • 然后还定义了blog的view 日志器,作用是当view里面出错的时候我们能记录下来错误的日志信息

  • 接着我们要在view里面做相关的设置写入如下两行代码:

  • 接着我们做个测试在view 里面打开一个错误的文件来捕获异常,写入日志文件中

  • 然后我们重启网页访问
  • 打开这个日志目录下的 error 文件就会出现我们捕获的异常

最新文章

  1. SPOJ DISUBSTR ——后缀数组
  2. golang map getkeys
  3. thinkphp里的session、cookie方法
  4. HOLOTOOLKIT的使用
  5. 理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER
  6. C#-WinForm-菜单和工具栏
  7. 缺陷跟踪系统Mantis Bug Tracker
  8. DOS常用的简单命令
  9. Eclipse代码风格
  10. Event Handling on Mac
  11. panguan(判官):一个自研的任务执行引擎的工程实践
  12. Incorrect integer value: '' for column 'id' at row 1
  13. 你是否决绝平庸,你有勇气来学C/C++吗,有勇气来检验你是否经得起世界五百强的面试
  14. Java基础(五)-Java序列化与反序列化
  15. web.xml 详细介绍
  16. BugFix:URL or HTTP headers are too long (IP=127.0.0.1)
  17. (4)HomeAssistant 自动化
  18. Excel列名序号互转
  19. java 异常匹配
  20. Docker Zero Deployment and Secrets (二)

热门文章

  1. 百度api使用说明
  2. [置顶] openHAB 体系结构与编程模型 (2) --- Web Application Servlet 源码结构
  3. [Atcoder Code Festival 2017 Qual B Problem F]Largest Smallest Cyclic Shift
  4. CSS解决ul下面最后一个li的margin
  5. sql学习笔记(18)-----------数据库创建过程
  6. POJ 3270
  7. 暑假NOIP期末考试【1】—— Phantom
  8. C#一个托付的样例
  9. cocos2d-x-3.3rc2-003 cocos中的引用计数和自己主动释放池
  10. 叫号系统排队系统挂号系统实现(JAVA队列)