我想使用ContextFiltering將一個用戶定義的變量添加到記錄器格式。我的代碼如下:Python日誌記錄處理程序
import logging
import logging.handlers
CMDID='TEST'
class ContextFilter(logging.Filter):
def filter(self,record):
record.CMDID=CMDID
return True
FORMAT='%(asctime)s [%(CMDID)s] - %(message)s'
logger=logging.getLogger("Test")
fh=logger.handlers.RotatingFileHandler("testing.log",maxBytes=1024,backupCount=5)
fh.setlevel(logging.DEBUG)
fh.setFormatter(logging.Formatter(FORMAT))
logger.addHandler(fh)
logger.addFilter(ContextFilter())
logger.warning("WTH")
當我不使用的FileHandler,只是使用basicConfig格式化然後代碼工作正常。但在加入了旋轉的文件處理程序,收到錯誤
Traceback (most recent call last):
Line 16, in <module>
fh=logger.handlers.RotatingFileHandler("testing.log",maxBytes=1024,backupCount=5)
AttributeError: 'list' object has no attribute 'RotatingFileHandler'
現在我自己也嘗試使用LoggerAdapters類這一點,但它也拋出一個關於進一步調查我發現,可能有一些問題,它的文檔奇怪的錯誤。
任何人都可以幫我解決這個問題,並建議我使用這個FileHandler在我的記錄器中有效地添加上下文用戶定義信息的方法。
P.S.我曾嘗試在Python文檔中給出的方法都沒用
對於錯別字,感到抱歉。 非常感謝。奇蹟般有效 !! –