首先介绍日志,接着介绍三个版本的logging日志,推荐旗舰版本,直接套用就可以。
logging日志
- 工作日志分四个大类
- 系统日志:记录服务器的一些重要信息(监控系统,cpu温度,网卡流量,重要硬件的一些指标。运维人员经常使用的,记录操作的一些指令)
- 网站日志:访问异常,卡顿,网站的一些板块的受欢迎程度,访问量,点击率等等。蜘蛛爬取的次数。
- 辅助开发日志:开发人员在开发项目中,利用日志进行排错,排除一些避免不了的错误(记录),辅助开发。
- 记录用户信息日志:用户的消费习惯,新闻偏好,等等(数据库解决)。
- 日志:是谁使用的?一般都是开发者使用的。
low版(简易版)
缺点:文件和屏幕只能选择一个输出。
优点:比print,open,write快的多。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import logging
# logging.basicConfig(level=logging.DEBUG)
logging.basicConfig(
level=10,
format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
filename=r'test.log',
filemode='a'
)
logging.debug('debug message') # 10
logging.info('info message') # 正常信息 # 20
logging.warning('warning message') # 30
logging.error('error message') # 40
logging.critical('critical message') # 50
标配版(标准版)
增加了屏幕和文件同时输出。
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
32import logging
# 创建一个logging对象
logger = logging.getLogger()
# 创建一个文件对象
fh = logging.FileHandler('标配版.log',encoding='utf-8')
# 创建一个屏幕对象
sh = logging.StreamHandler()
# 配置显示格式
formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
formatter2 = logging.Formatter('[line:%(lineno)d] %(message)s')
# 绑定
fh.setFormatter(formatter)
sh.setFormatter(formatter2)
logger.addHandler(fh)
logger.addHandler(sh)
# 先设置总开关
logger.setLevel(30) # 默认设置为10
# 如果默认设置为30 则,下面分别设置的如果低于30则仍然不会输出。
# 分别设置
fh.setLevel(10)
sh.setLevel(40)
logging.debug('debug message') # 10
logging.info('info message') # 正常信息 # 20
logging.warning('warning message') # 30
logging.error('error message') # 40
logging.critical('critical message') # 50
旗舰版(项目中使用的,Django项目)
- 优点:自定制日志(通过字典的方式)(前两个是系统固定的)
- 轮转日志:按内存,按时间
- 可以同时输出多个文件。
1 | """ |