API docs for “spamfighter.core.log.MessageLog”

# Class s.c.l.MessageLog(object):

Part of spamfighter.core.log View Source View In Hierarchy

Лог сообщений, проходящих через сервер.

Класс поддерживает эффективный, потенциально распределенный кольцевой лог заданного масштаба. Элементы лога (`LogEntry`) хранятся в pickled-представлении в storage. В одном ключе хранятся все сообщения, попавшие в лог в течение `timeChunk` секунд, при этом поддерживается `numChunks` ключей всего. Общая минимальная емкость лога составляет `timeChunk`*(`numChunks`-1) секунд.

Instance Variables | storageName | имя свойства в домене, которое является хранилищем лога (type: `str` )
| storage | хранилище (type: `spamfighter.interfaces.IExpirableStorage` )
| timeChunk | емкость одного ключа в хранилище в секундах (type: `int` )
| numChunks | число выделяемых в хранилище ключей под лог (type: `int` )
| keyTemplate | шаблон имени ключа хранилища под лог (type: `str` )
| lastID | последний выделенный ID для записи лога (type: `int` )

Method | __init__ | Конструктор.
Method | bind | Извещение объекту о том, что он был помещен в домен.
Method | put | Поместить новое сообщение в лог.
Method | fetch | Произвести выборку сообщений из лога по указанным критериям выборки.
Method | __getstate__ | Undocumented
Method | __setstate__ | Undocumented

def __init__(self, storage='storage', timeChunk=10, numChunks=100): (source)
Конструктор.

Parameters | storage | имя свойства в домене, которое является хранилищем лога (type: `str` )
| timeChunk | емкость одного ключа в хранилище в секундах (type: `int` )
| numChunks | число выделяемых в хранилище ключей под лог (type: `int` )

def bind(self, domain, name): (source)
Извещение объекту о том, что он был помещен в домен.

Parameters | domain | домен (type: `IDomain` )
| name | имя в домене (type: `str` )

def put(self, message, when=None, tags=None): (source)
Поместить новое сообщение в лог.

Parameters | when | дата/время записи в логе, UTC (type: `int` )
| message | само сообщение (type: `IMessage` или `ITaggedMessage` или `TransitMessage` )
| tags | тэги, привзяанные к сообщению (type: `list(str)` )
Returns | Deferred о завершении операции (type: `twisted.internet.defer.Deferred` )

def fetch(self, first=None, last=None, firstID=None): (source)
Произвести выборку сообщений из лога по указанным критериям выборки.

Parameters | first | минимальная дата возвращаемого сообщения (type: `int` )
| last | максимальная дата возвращаемого сообщения (type: `int` )
| firstID | минимальный ID элемента лога, который будет возвращен (type: `int` )
Returns | Deferred с `list(``ILogEntry``)` (type: `twisted.internet.defer.Deferred` )

def __getstate__(self): (source)
Undocumented
def __setstate__(self, state): (source)
Undocumented