Python logging配置format字段中%(name)s等表达式的s是什么含义
Python logging配置中%格式语法说明
你在logging配置里看到的format=[%(name)s][%(levelname)s] %(asctime)s: %(message)s用的是Python标准的旧式%字符串格式化语法,是Python内置的基础字符串语法,不是logging模块独有的特殊写法。
语法结构说明
%(key)s是%格式化里专门针对字典/关键字参数传值的映射写法:
- 括号里的
name/levelname这类key,对应logging模块在生成日志时自动传入的字段名 - 末尾的
s是格式转换符,是string的缩写,代表将取到的字段值转换为字符串类型后插入对应位置,和普通字符串格式化里%s的s含义完全一致。
除了s之外,常用的转换符还有d(转整数)、f(转浮点数)等,不过logging配置里绝大多数场景都用s即可。
你这段配置里各占位符的实际含义
%(name)s:当前打印日志的logger实例名称,也就是你调用logging.getLogger()时传入的名称%(levelname)s:当前日志的级别文本,比如DEBUG/INFO/WARNING/ERROR/CRITICAL%(asctime)s:日志打印时的可读时间,默认格式为年-月-日 时:分:秒,毫秒%(message)s:你写日志代码时传入的具体日志内容,比如logger.info("数据库连接成功")里的数据库连接成功
用这个格式实际输出的日志样例如下:
[user_service][INFO] 2024-05-20 15:22:43,267: 用户10086登录成功
内容的提问来源于stack exchange,提问作者pitosalas
相关产品推荐
相关产品推荐

