三、logging的用法
logging最简单的用法是logging.basicConfig([**kwargs]) 其中参数如下:
| | | | | | | | | | | | | 用指定的stream创建StreamHandler,可指定输出到sys.stderr,sys.stdout或文件,默认为sys.stderr。若同时列出filename和stream,stream会被忽略 |
以上format可能用的格式化串:
| | %(name)s
| logger的名字
| %(levelno)s
| 数字形式的日志级别
| %(levelname)s
| 文本形式的日志级别
| %(pathname)s
| 调用日志输出函数的模块的完整路径名
| %(filename)s
| 调用日志输出函数的模块的文件名
| %(module)s
| 调用日志输出函数的模块名
| %(funcName)s
| 调用日志输出函数的函数名
| %(lineno)d
| 调用日志输出函数的语句所在的代码行
| %(created)f
| 当前时间(UNIX浮点数)
| %(relativeCreated)d
| 输出日志信息时,自logger创建以来的毫秒数
| %(asctime)s
| 当前时间,字符串型如"2020-12-11 10:59:21,562"
| %(thread)d
| 线程ID
| %(threadName)s
| 线程名
| %(process)d
| 进程ID
| %(message)s
| 用户输出的信息
|
datefmt值的写法:
datefmt值
| 说明
| %Y
| 年的“长格式”,如1999
| %y
| 年的“短格式”,如99
| %m
| 月
| %d
| 日
| %H
| 小时0-23
| %w
| 星期0-6,周日=0
| %M
| 分钟
| %S
| 秒
|
程序示例:
import logging
#每条日志的格式,其中12s,8s,10s不知道是啥?
logFormat = '%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s'
#日志文件目录:
logFileName = r'C:\Users\Administrator\Desktop\testLog.txt'
logging.basicConfig(level = logging.INFO,#低于该等级不显示
format = logFormat,
filename = logFileName,
filemode = 'w')#常识:w覆盖,a追加
logging.debug('xxxx1')#debug等级低于info,不显示
logging.info('xxxx2')
logging.warning('xxxx3')
logging.error('xxxx4')
logging.critical('xxxx5')
于是,在桌面生成了日志文件:testLog.txt,内容为:
2020-12-11 14:47:41,293 INFO root xxxx2
2020-12-11 14:47:41,293 WARNING root xxxx3
2020-12-11 14:47:41,293 ERROR root xxxx4
2020-12-11 14:47:41,293 CRITICAL root xxxx5
总结:
一个小小的日志,一大堆东西,看着脑壳痛,依案例,照葫芦画瓢,能用就行
|