Python标准输出日志记录:终端与bash文件

问题描述 投票:0回答:2

我不是Bash和Python的专家,所以这个问题可能看起来很愚蠢。

我有一个名为learn.py的Python脚本,当重定向到日志文件时,我注意到标准输出的两种不同行为。

如果从终端调用此命令,则可以看到脚本运行时日志文件的大小正在增加。

$ ./learn.py > file.log

但是,如果出于相同目的创建bash文件:

#!/bin/bash
./learn.py > file.log

脚本已启动(我用pgrep进行了检查),但似乎未运行,因为日志文件保持为空。我想念什么吗?

python linux bash terminal stdout
2个回答
1
投票

我通过插入插入Logging facility for Python来解决

import logging
logging.basicConfig(filename='file.log',level=logging.INFO)

并将print "..."的每次出现都替换为

logging.info("...")

最终的Bash脚本:

#!/bin/bash
./learn.py

0
投票

您可以使用nohup

也可以使用&使其在后台运行

#!/bin/bash
nohup python learn.py >> file.log &
© www.soinside.com 2019 - 2024. All rights reserved.