今天说的是logging模块,类似于android里面的log ,前端里面的console,只能说语言的共性是相通的,功能也是相同的。。。下面来一点一点介绍 :
- 最简单的用法,就是和android, 前端一样 ,直接把log 打印到输出中:
import logging
log_dict = {
"level":logging.DEBUG
}
logging.basicConfig(**log_dict)
logging.debug("debug")
logging.info("info")
logging.warn("warn")
logging.warning("warning")
logging.error("error")
- 后面如果你要是不想看到log的时候,只需要吧log_dict 里面的 “level” 修改成logging.CRITICAL , 级别设为最大,这样所有的logging就都不显示了。
- 我们可以通过修改basicConfig(**log_dict) 中 log_dict 的参数,来修改打印出的内容,以及把内容写入文件,等等操作。
fmt = '%(asctime)s - %(filename)s:%(lineno)s - %(name)s - %(message)s',
log_dict = {
"filename" : 'test2/test.log',
"filemode" : 'a',
"level" :logging.INFO,
'format' : fmt,
'datefmt' : '%Y-%m-%d %H:%M:%S'
}
- 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 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
- %(thread)d 线程ID。可能没有
- %(threadName)s 线程名。可能没有
- %(process)d 进程ID。可能没有
- %(message)s用户输出的消息
这些内容也不需要全部记,知道常用的几个就可以了。。。
- datefmt :
这个的参数是用来控制上面format中的asctime 里面的时间显示内容,顺序等,就和我们平常输出时间戳修改为日期就可以了。。。 - filename :
filename 的字符串是一个文件路径,如上面的一样,这样的话不会打印输出,会直接输出到指定路径的文件下面。。 - filemode :
filemode 是用来控制打印日志文件的读写状态, ‘w’, ‘a’ 这些东东,具体不懂的可以百度下pyton 文件读写。。。