首先,您使用的api不存在。它不是在模塊 水平證明,但log.msg
是documented here:通過 到log.msg
所有非關鍵字參數是消息所以這裏的你是不是設置消息 水平,但添加到您的消息的整數部分,這種形式的方式 氣餒。
log.msg('agent nr.1 has free slots', logging.DEBUG) # debug message
其次,要回答你的問題,是的,你可以指示扭曲使用 日誌級別來確定的消息應使用記錄,但這不是 默認記錄器是如何工作的。幸運的是,個性化扭曲是有點自然的 (如果你知道如何去做)。
你必須寫一個記錄儀觀測,例如,你可以擴展 twisted.python.log.FileLogObserver
,一個處理一個日誌等級:
import logging
from twisted.python import log
class LevelFileLogObserver(log.FileLogObserver):
def __init__(self, f, level=logging.INFO):
log.FileLogObserver.__init__(self, f)
self.logLevel = level
def emit(self, eventDict):
if eventDict['isError']:
level = logging.ERROR
elif 'level' in eventDict:
level = eventDict['level']
else:
level = logging.INFO
if level >= self.logLevel:
log.FileLogObserver.emit(self, eventDict)
,那麼你必須register it:
from twisted.python import logfile
f = logfile.LogFile("someFile.log", '/some/path/', rotateLength=1000,
maxRotatedFiles=100)
logger = LevelFileLogObserver(f, logging.DEBUG)
twisted.python.log.addObserver(logger.emit)
如果你使用twistd來你可以通過它--logger
選項:
# mylogger.py
# import LevelFileLogObserver
from twisted.python import logfile
f = logfile.LogFile("someFile.log", '/some/path/', rotateLength=1000,
maxRotatedFiles=100)
flobserver = LevelFileLogObserver(f)
observer = flobserver.emit
# twistd invocation
twistd --logger=mylogger.observer
現在你可以使用你所定義的新的API:
log.msg('the level of this message is INFO')
log.msg('the level of this message is INFO', level=logging.INFO)
log.msg('the level of this message is DEBUG', level=logging.DEBUG)
log.msg('the level of this message is ERROR', level=logging.ERROR)
log.err('the level of this message is ERROR')
我沒有時間寫完整答案,但未來的訪問者應該知道這些答案已過時。請參閱:http://twistedmatrix.com/documents/current/core/howto/logger.html –