python 占位符 在日志输出模块logging的使用
python 占位符 在日志输出模块logging的使用,不使用占位符,只能输出字符串,但是我们平常也有可能会输出exception、time等、
1、%c,格式化字符及其ASCII码 2、%s,格式化字符串 3、%d,格式化整数 4、%u,格式化无符号整数 5、%o,格式化无符号八进制数
6、%f,浮点数(float)占位符,也可以表示整数(int),默认保留小数点后6位
logger的配置,可以将日志保存到当前文件目录中
import logging.config
import os
logger = logging.getLogger()
#获取当前路径,绝对路径 path = os.path.abspath('.') #日志输出格式 formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
#日志输出路径和文件名,when=D是指:按照天分割文件 file_handler = handlers.TimedRotatingFileHandler(filename=path+'\\send.log', when='D')
#设置日志级别
file_handler.setLevel(level=logging.DEBUG)
file_handler.setFormatter(formatter) logger.addHandler(file_handler)
日志输出例子:
logger.info("设备ID=%s , 计划时间=%s分钟", deviceID, 5 ) logger.info("这是数字%d",800) logger.info("这是小数%f",800) logger.info("这是无符号整数%u",800) logger.info("这是无符号八进制%o",21321)
输出结果
2022-07-08 13:54:22,844 - test10.py[line:43] - INFO: 设备ID=10_1_24_16 , 计划时间=5分钟 2022-07-08 13:54:22,844 - test10.py[line:44] - INFO: 这是数字800 2022-07-08 13:54:22,844 - test10.py[line:45] - INFO: 这是小数800.000000 2022-07-08 13:54:22,844 - test10.py[line:46] - INFO: 这是无符号整数800 2022-07-08 13:54:22,844 - test10.py[line:47] - INFO: 这是无符号八进制51511
另外用%s,也可输出其他非字符串的数据:
logger.info("这是time 模块 %s",time)
logger.info("这是threading 模块 %s",threading)
结果
2022-07-08 13:58:34,437 - test10.py[line:44] - INFO: 这是time 模块 <module 'time' (built-in)>
2022-07-08 13:58:34,437 - test10.py[line:45] - INFO: 这是threading 模块 <module 'threading' from 'D:\\02tools\\python\\lib\\threading.py'>