簡體   English   中英

Python 標准輸出日志記錄:終端與 bash 文件

[英]Python stdout logging: terminal vs bash file

我不是 Bash 和 Python 的專家,所以這個問題可能看起來很愚蠢。

我有一個名為learn.py的 Python 腳本,當重定向到日志文件時,我注意到標准輸出的兩種不同行為。

如果我從終端調用它,我可以看到在腳本運行時日志文件的大小在增長。

$ ./learn.py > file.log

但是,如果我出於相同目的創建一個 bash 文件:

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

腳本啟動(我用pgrep進行了檢查)但它似乎沒有運行,因為日志文件保持為空。 我錯過了什么嗎?

我解決了使用PythonLogging 工具,通過插入

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

並將每次出現的print "..."替換為

logging.info("...")

最終的 Bash 腳本:

#!/bin/bash
./learn.py

你可以使用nohup

您也可以使用 & 使其在后台運行

#!/bin/bash
nohup python learn.py >> file.log &

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM