2026/5/14 4:06:59
网站建设
项目流程
洛阳酒店网站开发大全,网站开发需要懂多少代码,wordpress media.php,做网站分辨率多少背景使用docker logs -f container-name | grep abc检索关键字时#xff0c;期望能够过滤出包含abc字符的日志内容#xff0c;可实际输出的结果并无过滤效果#xff0c;即输出的结果跟执行docker logs -f container-name的效果是一致的。在项目…背景使用docker logs -f container-name | grep abc检索关键字时期望能够过滤出包含abc字符的日志内容可实际输出的结果并无过滤效果即输出的结果跟执行docker logs -f container-name的效果是一致的。在项目中碰到这个问题一开始一头雾水特别的反直觉。原因docker logs 命令会输出两个流stdout标准输出stderr标准错误grep 只过滤 stdoutstderr 会直接穿透显示。grep 的工作方式: grep 会过滤匹配的行但如果这些日志是从 stderr 输出的grep 无法过滤它们。检查项目的 logging_config.py 配置发现设置了 logging.StreamHandler(sys.stderr)所有的日志都输出到了 stderr导致了 grep 功能失效。解决方案1. 需要将 stderr 和 stdout 都重定向到 grepdocker logs -f container-name 21 | grep abc加上了 21 后将日志内容强制输入至 stdout过滤功能恢复了。2. 修改logging_config.py 配置logging.StreamHandler(sys.stdout)重启项目这样就不需要加上 21 了。