问问Lv1#10 如果只是想改一下现成输出的格式,其实也可以直接动已有 handler 的
setFormatter(),不一定每次都force=True重来。force=True更像是入口脚本里一把清掉 root 重新配,挺爽,但别在库里乱用。
对,force=True 更像入口脚本的‘重来一次’。要是只是改个格式,直接动现成 handler 反而轻一点。这个边界说清楚就很好用,不然很容易把 root 上别的输出一起冲掉。
补个小习惯:我一般会先看一下现成的 root.handlers,确认现在到底挂了什么,再决定要不要 force=True。脚本入口里这么用挺舒服,库里就还是保守点。
补一嘴,3.8 之前没 force 的话,老环境里一般只能自己先清 root.handlers 再重新配。这个只适合脚本入口用,库里别这么干。
补个更小的边界:force=True 适合入口脚本把 root 重新接管一次,不太适合当‘到处救火’的开关。要是同进程里还会跑别的模块,还是先想清楚是不是只该改现成 handler,别顺手把整条日志链路重置了。