day31 logging 日志模块

 1 # logging 日志模块     ******
 2 # 记录用户行为或者代码执行过程
 3 # print 来回注释比较麻烦的
 4 # logging
 5 # 我能够“一键”控制
 6 # 排错的时候需要打印很多细节来帮助我排错
 7 # 严重的错误记录下来
 8 # 有一些用户行为 有没有错都要记录下来
 9 
10 # basicconfig 配置打印日志的功能
11 # 简单 能做的事情相对少
12     # 中文的乱码问题
13     # 不能同时往文件和屏幕上输出
14 # import logging
15 # logging.basicConfig(level=logging.DEBUG,
16 #                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
17 #                     datefmt='%a, %d %b %Y %H:%M:%S',
18 #                     filename = "test.log",
19 #                     filemode = "a")
20 
21 # try:
22 #     int(input('num >>'))
23 # except ValueError:
24 #     logging.error('输入的值不是一个数字')
25 #
26 # logging.debug('debug message')               # 低级别的 # 排错信息
27 # logging.info('info message')                # 正常信息
28 # logging.warning('warning message')         # 警告信息
29 # logging.error('error message')              # 错误信息
30 # logging.critical('critical message')         # 高级别的 # 严重错误信息
31 #
32 # print('%(key)s'%{'key':'value'})
33 # # print('%s'%('key','value'))
34 
35 
36 
37 # logger 对象 和 文件操作符 关联
38 # 稍微复杂一些,但是能做的事情比较多一些
39 
40 import logging
41 
42 logger = logging.getLogger()                                # 管对象的
43 
44 fh = logging.FileHandler("log.log",encoding="utf-8")        # 管文件的    # 下面那个是管格式的
45 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
46 fh.setFormatter(formatter)        # 需要连起来 文件要被格式关联约束起来
47 logger.addHandler(fh)            # logger 要和文件操作符关联起来
48 
49 sh = logging.StreamHandler()    # 创建一个屏幕控制对象
50 formatter2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s [line:%(lineno)d] : %(message)s')
51 logger.addHandler(sh)
52 sh.setFormatter(formatter2)
53 
54 logging.debug('debug message')               # 低级别的 # 排错信息
55 logging.info('info message')                  # 正常信息
56 logging.warning('警告错误')                  # 警告信息
57 logging.error('error message')              # 错误信息
58 logging.critical('critical message')         # 高级别的 # 严重错误信息
59 
60 try:
61     int(input('num >>'))
62 except ValueError:
63     logging.error('输入的值不是一个数字')
64 
65 # 程序的充分解耦
66 # 让程序变得高可定制
67 
68 # zabbix 监控系统
69 
70 # logging
71 # 有5种级别的日志记录模式 :
72 # 两种配置方式:basicconfig 、log对象
原文地址:https://www.cnblogs.com/shijieli/p/9944736.html