You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在通过main.sh运行py文件时生成包含错误信息的日志文件

根因说明

你当前使用的python3 python.py> log.txt写法仅重定向了标准输出流(stdout,文件描述符为1)到log.txt,Python运行时抛出的报错默认输出到标准错误流(stderr,文件描述符为2),因此不会被写入日志文件。

解决方案
  • 方案1:标准输出和错误输出写入同一个日志文件
    将main.sh中的命令修改为:
    python3 python.py > log.txt 2>&1
    说明:2>&1表示将标准错误流的输出重定向到标准输出流指向的路径,也就是log.txt,正常输出和报错都会写入同一个文件。

  • 方案2:分开存储正常输出和错误输出
    如需区分普通日志和错误日志,可以使用以下写法:
    python3 python.py > output.log 2> error.log
    说明:正常打印内容会存入output.log,报错内容会单独存入error.log,更便于问题排查。

  • 方案3:同时输出到终端和日志文件
    如需运行时在终端实时查看内容,同时将内容落盘日志,可以使用tee命令:
    python3 python.py 2>&1 | tee log.txt

效果验证

使用你提供的示例代码print(a)测试,运行修改后的main.sh后,打开log.txt即可看到完整报错信息:

Traceback (most recent call last):
  File "python.py", line 1, in <module>
    print(a)
NameError: name 'a' is not defined

内容的提问来源于stack exchange,提问作者Khabbab Zakaria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:15:07