一、logging模块
1.1日志输出位置:
- 终端
- 文件 # 不指定,默认打印到终端(这种方式只能提供一种形式。如果你要往文件中输出就不能往终端中打印. 有局限性)
1.2日志格式:
- %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
- %(name)s Logger的名字, 没有指定默认就是root
- %(levelname)s 文本形式的日志级别(debug调试, info信息, warning警告, error错误, critical危险)
- %(module)s 调用日志输出函数的模块名 # %(message)s 输出的消息
1.3 时间格式
- 这里的时间格式的指定是为了用来替代上面的asctime的时间格式
1.4日志级别
级别数字对应的关系: 默认是warning级别,级别是对应的数字是30。由级别控制输出效果, 30级别只能输出30, 40, 50级别的内容及结果.
10 --> debug
20 --> info
30 --> warning
40 --> error
50 --> critical
注意:root是默认的日志名字, 没有指定,默认就是root。
二. 日志配置字典
# 1、定义三种日志输出格式,日志中可能用到的格式化串如下 """ %(name)s Logger的名字, 没有指定默认就是root %(levelno)s 数字形式的日志级别(10, 20, 30, 40, 50) %(levelname)s 文本形式的日志级别(debug调试, info信息, warning警告, error错误, critical危险) %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有 %(filename)s 调用日志输出函数的模块的文件名 %(module)s 调用日志输出函数的模块名 %(funcName)s 调用日志输出函数的函数名 %(lineno)d 调用日志输出函数的语句所在的代码行 %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示 %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数 %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒 %(thread)d 线程ID。可能没有 %(threadName)s 线程名。可能没有 %(process)d 进程ID。可能没有 %(message)s 用户输出的消息 """
2. 定义日志的输出格式: 强调!! 其中的%(name)s为调用logging模块后, 使用logging.getlogger()时指定的日志名
三、logging模块的使用
1.
logging是一个包,需要使用其下的config、getLogger
2.
import logging.config # 这样连同logging.getLogger都一起导入了,然后使用前缀logging.config
import settings
3.
3、
加载配置字典 logging.config.dictConfig(settings.LOGGING_DIC)
4、输出日志
logger1 = logging.getLogger('用户交易')
logger1.info('egon儿子alex转账3亿冥币')
四、re
什么是正则:正则就是用一堆特殊的符号表达一种特殊的规律。拿这种特殊的符号到一种大的字符串中去比对, 按着这种特定的规律取到你的值。