2017-07-28 19 views
1

我有一個腳本,它每天都在運行,並且正在使用Python的TimedRoatingLogFileHandler。 下面是代碼摘錄。在python中沒有發生TimedRotatingFileHandler的轉移

log = 'test.log'   # Set up Log title 
filename = '/var/log/' + log 
handler = TimedRotatingFileHandler(filename, when="D", interval=1, backupCount=45) 
formatter = logging.Formatter('%(asctime)s : %(name)s : %(levelname)s : %(message)s', 
           datefmt='%a, %d-%b-%Y %H:%M:%S') 
handler.setFormatter(formatter) 
logger = logging.getLogger(__name__) 
logger.setLevel(logging.INFO) 
logger.addHandler(handler) 

logger.info("Script execution started") 

我期待一個新的日誌文件test.log中得到每日創建和以前的日誌將被移動到test.log.1和test.log.2等

是我的假設是正確的? 如果是這樣,爲什麼沒有發生? 我可以在今天的日誌中看到昨天的輸出。昨天的日誌文件沒有像我期待的那樣移動到不同的文件中。 我在SUSE linux機器上使用Python 2.7。 我檢查了其他線程,但其中大多數不包含任何答案。 如果您需要更多詳細信息,請讓我知道。

+0

我更新了我的答案。 –

+0

這個設置正在工作。這是我的不好。文件夾中有很多文件,我正在做「ls -lrt test * log」而不是「ls -lrt test.log *」。 –

回答

0

您需要實際記錄某些事情發生翻滾事件。在你的程序執行此操作之前,昨天的輸出仍可能在當前日誌中。

更新:TimedRotatingFileHandler適用於當腳本運行多天,同時登錄多天。如果腳本在一天結束前每天完成,則最好使用FileHandler,並使用從日期導出的文件名。

+0

請看最後一行。我在最後包含了一個「logger.info」聲明。正如我所說,這只是一個摘錄。腳本中還有更多,因此更多的logger.info或logger.error語句。 –