配置logging.basicConfig后Python日志不输出日期时间的原因
问题原因排查
下面是该问题的几类常见原因,按出现概率从高到低排序:
- basicConfig调用时机晚于第一次日志输出
logging模块的logging.basicConfig仅在根日志器没有任何已绑定处理器的情况下才会生效。如果你在运行这段代码前,已经在其他位置(比如导入的其他模块、交互环境提前运行的代码)调用过任意日志输出方法,就会触发logging默认初始化,之后再调用basicConfig不会覆盖已有配置,自然不会出现你设定的时间格式。 - 路径配置错误导致日志写入到了其他文件
你代码里的文件路径写的是"..\logs\demologs.log",普通字符串里的反斜杠是转义字符,会导致实际路径和你预期的不符。你可以把路径改成原始字符串r"..\logs\demologs.log"或者替换为正斜杠"../logs/demologs.log"。很多时候你打开查看的是旧的、没有配置时间格式的日志文件,新生成的日志因为路径错误写到了其他位置,就会误以为配置不生效。 - 根日志器已经被手动绑定了其他处理器
如果你在项目的其他位置手动给根日志器添加过handler、修改过日志配置,也会导致basicConfig失效,你设定的格式不会生效。
验证方法:你可以把这段代码单独存为一个独立py文件,先删除所有旧日志文件,手动创建对应路径的logs文件夹,直接运行这个py文件,生成的日志就会带有你配置的时间格式。
内容的提问来源于stack exchange,提问作者user16925231
相关产品推荐
相关产品推荐

