6第一次数据请求 2:为用户处理模块增加 log 管理
# 为用户处理模块增加 log 管理
作为一个程序员,log 管理几乎是必备技能,本小节将在原来代码的基础上,增加 log 管理,以方便调试。进入 log 目录,并创建 users 目录。
进入
users_views.py,导入 logging 模块,并指定 log 目录文件(log/users/users.log),指定 log 级别(DEBUG)和 log 保留方式(这里设定按天保存,保留 30 天的 log 记录),并在处理方法中加入对应的 log 信息。
users_views.py 的完整代码如下:
#! /usr/bin/python3
# -*- coding:utf-8 -*-
import tornado.web
from tornado.escape import json_decode
import logging
from logging.handlers import TimedRotatingFileHandler
#从commons中导入http_response方法
from common.commons import (
http_response,
)
#从配置文件中导入错误码
from conf.base import (
ERROR_CODE,
)
########## Configure logging #############
logFilePath = "log/users/users.log"
logger = logging.getLogger("Users")
logger.setLevel(logging.DEBUG)
handler = TimedRotatingFileHandler(logFilePath,
when="D",
interval=1,
backupCount=30)
formatter = logging.Formatter('%(asctime)s \
%(filename)s[line:%(lineno)d] %(levelname)s %(message)s',)
handler.suffix = "%Y%m%d"
handler.setFormatter(formatter)
logger.addHandler(handler)
class RegistHandle(tornado.web.RequestHandler):
"""handle /user/regist request
:param phone: users sign up phone
:param password: users sign up password
:param code: users sign up code, must six digital code
"""
def post(self):
try:
#获取入参
args = json_decode(self.request.body)
phone = args['phone']
password = args['password']
verify_code = args['code']
except:
#获取入参失败时,抛出错误码及错误信息
logger.info("RegistHandle: request argument incorrect")
http_response(self, ERROR_CODE['1001'], 1001)
return
#处理成功后,返回成功码“0”及成功信息“ok”
logger.debug("RegistHandle: regist successfully")
http_response(self, ERROR_CODE['0'], 0)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
再次执行 main.py
HTTP 客户端发起正确的注册请求
查看 log/users/users.log
在日志文件中,日志的格式包含时间、文件名、打印代码行数、log 级别和自定义 log 信息。这些信息足以满足问题定位及排错。在前面的配置信息中,我们定义的 log 级别是 DEBUG,下面看看入参出错时,报的 INFO 日志。
查看 log/users/users.log
这里看到日志文件中多出了一行日志,级别为 INFO。前面我们也提到,我们定义了日志文件的记录保留,本小册由于是新建讲解项目,还无法直接查看日志保留记录。这里贴出之前项目的记录,可以看到历史保留文件是以天为后缀的,当天的文件还是在 users.log 中。
# 代码下载
到目前为止,服务器端代码如下:
demo7 (opens new window)
# 小结
本小节简单介绍了日志服务在服务器端开发中的应用,开发者可以自定义 log 级别及其历史保留记录。开发者可以根据自己的喜好及习惯,去定义具体的级别和信息。下一小节,我们将讲解如何利用 ORM 的方式和数据库打交道,并将用户注册信息写入数据库中。
Last Updated: 2023/02/14, 18:02:00