1
我有一個日誌記錄器設置,但我無法弄清楚如何僅在命令失敗或生成stderr時才記錄日誌。只使用python logger將日誌文件記錄到日誌文件中
def RunAndLog(self, command, logf)
p = subprocess.Popen(command, shell=False,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate()
logger = logging.getLogger('check rel')
logger.setLevel(logging.ERROR)
filehand = logging.handlers.RotatingFileHandler(logFile, mode='a',maxBytes=0,
backupCount=0, encoding=None, delay=0)
filehand.setLevel(logging.ERROR)
lformat = logging.Formatter('%(message)s')
filehand.setFormatter(lformat)
logger.addHandler(filehand)
logger.info(stdout)
logger.error(stderr)
logger.removeHandler(filehand)
我打電話給這個列表目錄。喜歡的東西,
self.RunAndLog(["dir","%s",pathtodir], "test.log")
test.log
包含了兩種情況,即消息,當目錄不存在,也當它......這裏有一個例子:
#case where dir doesn't exist
dir: /path/to/dir/dir1: No such file or directory
# case where it does
bin lib include src test python doc
我如何才能登錄消息到test.log
僅適用於目錄不存在或僅在dir
命令失敗且非零退出狀態的情況下?
謝謝...
它在那裏。從頂部 – iamauser
排行#3好抓住,但這是一個錯字,當我粘貼...現在編輯... – iamauser
我懷疑,因爲沒有調用它會導致例外。 –