Log module.

class spicerack.log.FilterOutCumin(name='')[source]

Bases: logging.Filter

A logging output filter to filter out Cumin's logs.


static inherited Initialize a filter.

Initialize with the name of the logger which, together with its children, will have its events allowed through the filter. If no name is specified, allow every event.


Filter out Cumin's log messages.

Parameters:record (logging.LogRecord) --
0 if the record should be filtered out, non-zero if it should be included. According to Python's
logging interface, see: https://docs.python.org/3/library/logging.html#filter-objects
Return type:int
class spicerack.log.IRCSocketHandler(host, port, username)[source]

Bases: logging.Handler

Log handler for logmsgbot on #wikimedia-operation.

Sends log events to a tcpircbot server for relay to an IRC channel.

__init__(host, port, username)[source]

Initialize the IRC socket handler.

  • host (str) -- tcpircbot hostname.
  • port (int) -- tcpircbot listening port.
  • username (str) -- the user to refer in the IRC messages.

static inherited Acquire the I/O thread lock.


static inherited Add the specified filter to this handler.


static inherited Tidy up any resources used by the handler.

This version removes the handler from an internal map of handlers, _handlers, which is used for handler lookup by name. Subclasses should ensure that this gets called from overridden close() methods.


static inherited Acquire a thread lock for serializing access to the underlying I/O.


According to Python logging.Handler interface.

See https://docs.python.org/3/library/logging.html#handler-objects


static inherited Determine if a record is loggable by consulting all the filters.

The default is to allow the record to be logged; any filter can veto this and the record is then dropped. Returns a zero value if a record is to be dropped, else non-zero.

Changed in version 3.2: Allow filters to be just callables.


static inherited Ensure all logging output has been flushed.

This version does nothing and is intended to be implemented by subclasses.


static inherited Format the specified record.

If a formatter is set, use it. Otherwise, use the default formatter for the module.


static inherited Conditionally emit the specified logging record.

Emission depends on filters which may have been added to the handler. Wrap the actual emission of the record with acquisition/release of the I/O thread lock. Returns whether the filter passed the record for emission.


static inherited Handle errors which occur during an emit() call.

This method should be called from handlers when an exception is encountered during an emit() call. If raiseExceptions is false, exceptions get silently ignored. This is what is mostly wanted for a logging system - most users will not care about errors in the logging system, they are more interested in application errors. You could, however, replace this with a custom handler if you wish. The record which was being processed is passed in to this method.


static inherited Release the I/O thread lock.


static inherited Remove the specified filter from this handler.


static inherited Set the formatter for this handler.


static inherited Set the logging level of this handler. level must be an int or a str.

spicerack.log.log_task_end(status, message)[source]

Log the start of a task both on the logs and IRC.

  • status (str) -- the final status of the task.
  • message (str) -- the message to be logged.

Log the start of a task both on the logs and IRC.

Parameters:message (str) -- the message to be logged.
spicerack.log.setup_logging(base_path, name, user, dry_run=True, host=None, port=0)[source]

Setup the root logger instance.

  • base_path (str, path-like object) -- the base path where to save the logs.
  • name (str) -- the name of log file to use without extension.
  • dry_run (bool, optional) -- whether this is a dry-run.
  • host (str, optional) -- the tcpircbot hostname for the IRC logging.
  • port (int, optional) -- the tcpircbot port for the IRC logging.