使用supervisor运行网站,调试print无法显示,发现重启程序之后日志才有
原来python解释器中,print是stdout输出, stdout输出流默认是行缓存的 ( line-buffered ),重定向和输出到控制台的内容会先被存在缓冲区中暂存,遇到换行符“\n”,或者缓存区的数据满 4k,才会将内容写到重定向的文件或者控制台中去。stderr不会先输出到缓冲区,所以才看到没有及时日志的原因而错误日志能实时输出
方法
print ("print")
import sys
sys.stdout.flush()
方法二
print("print",flush=true)