2013-10-18 56 views
0

我正在搞蟒蛇了一下,我想跟蹤一些事件發生的日期/時間。目前,輸出到控制檯將工作得​​很好。使用控制檯進行基本日誌記錄

目前,我正在處理它,像這樣:

首先,獲取格式化的日期/時間包在括號:

def get_date_time(): 
    now = datetime.datetime.now().strftime("%Y/%m/%d %I:%M:%S") 
    return "[" + now + "]" 

接下來,每當我想「日誌」的行動,呼籲它是這樣的:

print(get_date_time(), "Outputting whatever text here") 

這樣做有什麼不對嗎?有沒有更高效/乾淨的方法來做到這一點?可能沒有,它只是讓我好奇。

回答

5

在每個問題上;如果你要回報的東西,你做錯了。

對於你的問題;只是把它作爲一種功能,沿着某些方向行事;

def log(s): 
    print(get_date_time(), s) 

或者對於較大的項目,請使用logging模塊。

2

是的,使用Python日誌記錄模塊。 http://docs.python.org/2/library/logging.html

如果您願意,您可以格式化所有日誌以輸出日期時間。

import logging 

logging.basicConfig(level=logging.DEBUG, 
        format='%(asctime)s %(levelname)s %(message)s', 
        filename='/tmp/myapp.log', 
        filemode='w') 
logging.debug('A debug message') 

打印

2004-07-02 13:00:08,743 DEBUG A debug message 

如果你想成甲酸鹽的日期時間,使用logging.formatter()

+0

感謝您的建議如下http://docs.python.org/2.4/lib/minimal-example.html

看到。我懷疑我需要這樣強大的東西,但我一定會記住它。如果你願意,你可以設置日期時間的格式嗎?而不是'2004-7-02',將格式設置爲'10/4/2003'? – joshft91

+0

是的,使用logging.Formatter()。 formatter = logging.Formatter(「%(asctime)s;%(levelname)s;%(message)s」,「%Y /%m /%d%H:%M:%S」可以做類似 「) – tom

相關問題