django 开发之自定义日志器(二)

2016-08-24

需求

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

 

关于日志的代码文件

 1 # 自定义日志输出信息
 2 LOGGING = {
 3     'version': 1,
 4     'disable_existing_loggers': True,
 5     'formatters': {
 6         'standard': {
 7             'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}  #日志格式
 8     },
 9     'filters': {
10     },
11     'handlers': {
12         'mail_admins': {
13             'level': 'ERROR',
14             'class': 'django.utils.log.AdminEmailHandler',
15             'include_html': True,
16             },
17         'default': {
18             'level':'DEBUG',
19             'class':'logging.handlers.RotatingFileHandler',
20             'filename': 'log/all.log',     #日志输出文件
21             'maxBytes': 1024*1024*5,                  #文件大小
22             'backupCount': 5,                         #备份份数
23             'formatter':'standard',                   #使用哪种formatters日志格式
24         },
25         'error': {
26             'level':'ERROR',
27             'class':'logging.handlers.RotatingFileHandler',
28             'filename': 'log/error.log',
29             'maxBytes':1024*1024*5,
30             'backupCount': 5,
31             'formatter':'standard',
32             },
33         'console':{
34             'level': 'DEBUG',
35             'class': 'logging.StreamHandler',
36             'formatter': 'standard'
37         },
38         'request_handler': {
39             'level':'DEBUG',
40             'class':'logging.handlers.RotatingFileHandler',
41             'filename': 'log/script.log',
42             'maxBytes': 1024*1024*5,
43             'backupCount': 5,
44             'formatter':'standard',
45             },
46         'scprits_handler': {
47             'level':'DEBUG',
48             'class':'logging.handlers.RotatingFileHandler',
49             'filename':'log/script.log',
50             'maxBytes': 1024*1024*5,
51             'backupCount': 5,
52             'formatter':'standard',
53             }
54     },
55     #日志器设置
56     'loggers': {
57         'django': {
58             'handlers': ['default', 'console'],
59             'level': 'DEBUG',
60             'propagate': False
61         },
62         'django.request': {
63             'handlers': ['request_handler'],
64             'level': 'DEBUG',
65             'propagate': False,
66             },
67         'scripts': {
68             'handlers': ['scprits_handler'],
69             'level': 'INFO',
70             'propagate': False
71         },
72         'blog.views': {
73             'handlers': ['default', 'error'],
74             'level': 'DEBUG',
75             'propagate': True
76         },
77     }
78 }
View Code

 

  • 代码中定义了日志的输出位置:

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

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

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

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

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

 

posted @ 2016-08-23 19:33  下丶雨天  阅读(557)  评论(1编辑  收藏  举报