我想將日誌文件輸出到python中的日誌文件夾中。如何在python日誌中創建日誌文件夾
我可以通過當前日期在「../myapp/logs/20150514/xx.log」這樣的hander中創建日誌路徑。 但問題是日誌更改時日誌路徑不會更改。
我創建日誌實例,而我開始我的長期運行 python腳本xx.py,現在實例的日誌路徑是「../myapp/logs/20150514/xx.log」。但在明天,因爲實例沒有改變,所以它的路徑仍然是「../myapp/logs/20150514/xx.log」,它應該是「../myapp/logs/20150515/xx.log」。
如何使日誌輸出到日常文件夾?
我得到日誌實例代碼:
import os
import utils
import logging
from logging.handlers import RotatingFileHandler
import datetime
def getInstance(file=None):
global logMap
if file is None:
file = 'other/default.log'
else:
file = file + '.log'
if(logMap.has_key(file)):
return logMap.get(file)
else:
visit_date = datetime.date.today().strftime('%Y-%m-%d')
date_file = os.path.join(visit_date,file)
log_path = utils.read_from_ini('log_path').strip()
log_path = os.path.join(log_path,date_file);
if not os.path.isdir(os.path.dirname(log_path)):
os.makedirs(os.path.dirname(log_path))
logging.basicConfig(datefmt='%Y-%m-%d %H:%M:%S',level=logging.INFO)
log_format = '[%(asctime)s][%(levelname)s]%(filename)s==> %(message)s'
formatter = logging.Formatter(log_format)
log_file = RotatingFileHandler(log_path, maxBytes=10*1024*1024,backupCount=5)
log_file.setLevel(logging.INFO)
log_file.setFormatter(formatter)
instance = logging.getLogger(file)
instance.addHandler(log_file)
logMap[file] = instance
return instance
是的,TimedRotatingFileHandler只適用於文件名。如果沒有其他優美的解決方案,我會考慮創建它的子類。非常感謝。 – JackYe