求助:如何在Git Bash(MinGW环境)中实现控制台日志记录
我之前在Windows用Git Bash开发时,也纠结过怎么实现Linux下那种控制台日志记录,试了几个方案都挺好用的,分享给你:
方案1:用Git Bash内置的
script命令(最推荐) Git Bash基于MinGW,自带了Linux常用的script命令,完全可以实现Teraterm那种全程会话记录的效果:
- 启动记录:在Git Bash里输入
script my_session.log,回车后就开始记录所有控制台操作和输出了 - 停止记录:按下
Ctrl + D或者输入exit,日志会自动保存到当前目录的my_session.log文件里 - 追加模式:如果想在已有日志后面继续记录,用
script -a my_session.log - 安静模式:不想看到"Script started..."这类提示,加
-q参数:script -q my_session.log
⚠️ 小提示:日志文件里会包含一些终端控制字符(比如颜色代码),如果需要纯文本日志,可以用这个命令清理:
sed -i 's/\x1b\[[0-9;]*m//g' my_session.log
方案2:用
tee命令记录单个命令的输出 如果不需要记录整个会话,只想保存某个命令的输出,tee命令更方便:
- 同时在屏幕显示并写入日志:
python my_dev_script.py | tee script_output.log - 追加到已有日志:
python my_dev_script.py | tee -a script_output.log - 同时记录标准输出和错误输出:
python my_dev_script.py 2>&1 | tee script_output.log(把错误输出重定向到标准输出,再用tee捕获)
方案3:用
screen工具记录会话(更灵活) 如果需要更强大的会话管理(比如后台运行、多窗口),可以安装screen:
- 新版Git for Windows自带pacman包管理器,输入
pacman -S screen安装 - 启动带日志的会话:
screen -L -Logfile my_screen.log - 退出会话但保持后台运行:按下
Ctrl + A再按D - 彻底结束会话:输入
exit
这个工具的日志会自动过滤掉大部分控制字符,可读性更好,适合长时间的开发会话。
内容的提问来源于stack exchange,提问作者user6151327




