我正在尝试使用logger调试python脚本。它打开另一个python脚本并检查它是否正在运行。如果不是,则重新启动该脚本。
我的脚本:
while True:
print("Restart")
logger.info("Restart")
try:
p = subprocess.Popen(["python", OPEN_FILE]).wait()
except:
logger.exception("Error opening script")
print("Exit")
logger.error("Exit")
time.sleep(10)
if p != 0:
continue
else:
break如果找不到文件,则在终端上打印错误:
pi@raspberrypi:~/Desktop/MODBUS_TCP $ sudo python py_restart_script.py
Restart
python: can't open
file'/home/pi/Desktop/MODBUS_TCP/API_Modbus_TCP_Server3.py': [Errno 2] No
such file or directory
Exit但该错误不在日志文件中:
2018-11-15 22:30:16,269 - INFO - Restart
2018-11-15 22:30:16,325 - ERROR - Exit如何将终端显示的相同错误记录到日志文件中?
发布于 2018-11-16 02:25:57
在终端中打印的是进程stderr输出。您可以在python脚本中获取该文件并将其打印到日志文件中
>>> import subprocess
>>> p = subprocess.Popen(["python", "foobar"], stderr=subprocess.PIPE)
>>> ret = p.wait()
>>> ret # this holds the `subprocess` return code. ret != 0 indicates an error
2
>>> (_, stderr) = p.communicate()
>>> stderr
"python: can't open file 'foobar': [Errno 2] No such file or directory\n"
>>> https://stackoverflow.com/questions/53324678
复制相似问题