logging模块

Posted yspass

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logging模块相关的知识,希望对你有一定的参考价值。

 1 import logging
 2 
 3 # critical    50
 4 # error       40
 5 # warning     30
 6 # info        20
 7 # debug       10
 8 # logging.debug(‘log debug‘)
 9 # logging.info(‘log info‘)
10 # logging.warning(‘log warning‘)
11 # logging.error(‘log error‘)
12 # logging.critical(‘log critical‘)
13 
14 #1、日志打印到文件
15 #2、控制日志的级别
16 #3、控制日志的格式
17 
18 # logging.basicConfig(filename=‘access.log‘,
19 #                     format=‘%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s‘,
20 #                     datefmt=‘%Y-%m-%d %H:%M:%S %p‘,
21 #                     level=10,
22 #                     )
23 #
24 #
25 # logging.debug(‘log debug‘)
26 # logging.info(‘log info‘)
27 # logging.warning(‘log warning‘)
28 # logging.error(‘log error‘)
29 # logging.critical(‘log critical‘)
30 
31 
32 # logging模块包含四种对象:logger、filter、handler、formatter
33 
34 # 1、logger对象负责产生日志
35 logger1=logging.getLogger(交易日志)
36 
37 # 2、filter过滤
38 
39 # 3、handler对象需要与logger对绑定,用来接收logger对象传过来的日志,控制打印到不同的地方(不同的文件、终端)
40 fh1=logging.FileHandler(filename=a1.log,encoding=utf-8)
41 fh2=logging.FileHandler(filename=a2.log,encoding=utf-8)
42 sh=logging.StreamHandler()
43 
44 
45 # 4、formmter对象需要与handler对象绑定,用于控制handler对象的日志格式
46 formmater1=logging.Formatter(
47     fmt=%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s,
48     datefmt=%Y-%m-%d %H:%M:%S %p
49 )
50 
51 formmater2=logging.Formatter(
52     fmt=%(asctime)s - %(levelname)s :  %(message)s,
53     datefmt=%Y-%m-%d %H:%M:%S %p
54 )
55 
56 # 设置日志级别:logger与handler两层关卡都放行,日志最终才放行
57 logger1.setLevel(10)
58 
59 fh1.setLevel(10)
60 fh2.setLevel(40)
61 sh.setLevel(10)
62 
63 # 建立logger对象与handler对象的绑定关系
64 logger1.addHandler(fh1)
65 logger1.addHandler(fh2)
66 logger1.addHandler(sh)
67 
68 # 建立handler对象与formmater对象的绑定关系
69 fh1.setFormatter(formmater1)
70 fh2.setFormatter(formmater1)
71 sh.setFormatter(formmater2)
72 
73 # 使用logger1对象产生日志,打印到不同的位置
74 # logger1.debug(‘alex给egon转账1亿‘)
75 logger1.warning(alex可能要赔一个亿)

 

以上是关于logging模块的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

python常用代码片段总结

前端开发常用js代码片段

vs code 自定义代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?