2012-04-26 26 views
3

我使用的是django 1.3的日誌記錄功能,並試圖實現一個timedrotatingfilehandler來每小時旋轉日誌。記錄器在每個小時後都成功地旋轉,但似乎在每個日誌請求截斷期間該文件。該文件只有最後寫入這個message.Is在Django處理的問題還是我失去了somewhere.The記錄字典低於:django 1.3 logging timedrotatingfilehandler在每次寫入時截斷文件

LOGGING = { 
'version': 1, 
'disable_existing_loggers': True, 
'formatters': { 
    'standard': { 
     'format' : "%(asctime)s:%(pathname)s:%(lineno)s: %(message)s", 
     'datefmt' : "%d/%b/%Y %H:%M:%S" 
    }, 
}, 
'handlers': { 
    'logfile': { 
     'level':'DEBUG', 
     'class':'logging.handlers.TimedRotatingFileHandler', 
     'filename': "/tmp/log1.log", 
    'when' : 'hour', 
    'interval' : 0, 
     'formatter': 'standard', 
    }, 
}, 
'loggers': { 
    'collection': { 
     'handlers': ['logfile'], 
     'level': 'DEBUG', 
    }, 
} 
} 

請注意:當時間間隔設置爲1,日誌不會旋轉。這是django中的一個錯誤嗎?

回答

1

您需要設置:

'when' : 'H', 
'interval' : 1, 

從代碼,目前 '何時' 支持的事件:

  • 的S - 秒
  • 米 - 分鐘
  • ^h - 小時
  • D - 天
  • 午夜 - 翻過midni ght
  • W {0-6} - 在某一天滾動; 0 - 星期一

間隔是要計數的間隔數(例如,當'H'和間隔== 2將導致2小時時)。

+0

是的,我也試過這個........沒有改善 – 2012-05-02 10:42:29

0

無論何時創建日誌文件,只需將日期時間戳添加到文件名即可。這將確保該文件不會被截斷。