2012-09-14 83 views
3

我執行的程序具有不同參數的組合發出的命令。我需要跟蹤命令行中程序提供的參數。我維護,我需要存儲這些發出的命令alogwith結果的彙總日誌文件。蟒蛇:存放在日誌文件中

例如,我可以發佈在不同的時間如下命令。

$python myprog.py -i input.txt -o output.txt -x 2 -y 3 -z 9 
$python myprog.py input.txt -o output.txt -x 2 -z 9 
$python myprog.py -i input.txt -o output.txt -x 2 -y 3 
$python myprog.py -i input.txt -o output.txt -z 9 

如何將這些命令存儲到我的日誌文件中?

我這樣做,因爲我可能需要重新執行相同的程序與完全相同的選項。

回答

1

您可以使用該模塊sys讓所有的參數作爲一個列表,argv。 爲他們記錄到一個文本文件,你可以使用這段代碼:

import sys 
logfile = open("logfile.txt", "w") 
logfile.write(" ".join(sys.argv)) 
logfile.close() 
+0

非常感謝。爲我工作 – Curious

0

您可以從sys.argv捕捉程序中的參數,並將其追加到一個日誌文件。

import datetime 
import sys 
if __name__ == '__main__': 
    now = datetime.datetime.now().ctime() 
    with open('logfile', 'a') as log: 
     log.write("Invoked at %s with args: %s\n" % (now, sys.argv) 
1

您可以使用logging module

import logging 
import sys 
logger = logging.getLogger(__name__) 

if __name__ == '__main__': 
    logging.basicConfig(filename = '/tmp/command.log', level = logging.INFO, 
         format = '%(asctime)s %(message)s', 
         datefmt = '%Y-%m-%d %H:%M:%S') 

    logger.info(sys.argv)