# Logbook

### Navigation

- index
- modules |
- next |
- previous |
- Logbook 0.6.1-dev »
- API Documentation »

# Ticketing Support

This documents the support classes for ticketing. With ticketing handlers log records are categorized by location and for every emitted log record a count is added. That way you know how often certain messages are triggered, at what times and when the last occurrence was.

class `logbook.ticketing.``TicketingBaseHandler`(hash_salt, level=0, filter=None, bubble=False)

  Baseclass for ticketing handlers. This can be used to interface ticketing systems that do not necessarily provide an interface that would be compatible with the `BackendBase` interface.

  `hash_record_raw`(record)

    Returns the unique hash of a record.

class `logbook.ticketing.``TicketingHandler`(uri, app_id='generic', level=0, filter=None, bubble=False, hash_salt=None, backend=None, **db_options)

  A handler that writes log records into a remote database. This database can be connected to from different dispatchers which makes this a nice setup for web applications:

      from logbook.ticketing import TicketingHandler
      handler = TicketingHandler('sqlite:////tmp/myapp-logs.db')

  Parameters:

  - uri – a backend specific string or object to decide where to log to.
  - app_id – a string with an optional ID for an application. Can be used to keep multiple application setups apart when logging into the same database.
  - hash_salt – an optional salt (binary string) for the hashes.
  - backend – A backend class that implements the proper database handling. Backends available are: `SQLAlchemyBackend`, `MongoDBBackend`.

  `default_backend`

    The default backend that is being used when no backend is specified. Unless overriden by a subclass this will be the `SQLAlchemyBackend`.

    alias of `SQLAlchemyBackend`

  `emit`(record)

    Emits a single record and writes it to the database.

  `process_record`(record, hash)

    Subclasses can override this to tamper with the data dict that is sent to the database as JSON.

  `record_ticket`(record, data, hash)

    Record either a new ticket or a new occurrence for a ticket based on the hash.

class `logbook.ticketing.``BackendBase`(**options)

  Provides an abstract interface to various databases.

  `count_tickets`()

    Returns the number of tickets.

  `delete_ticket`(ticket_id)

    Deletes a ticket from the database.

  `get_occurrences`(ticket, order_by='-time', limit=50, offset=0)

    Selects occurrences from the database for a ticket.

  `get_ticket`(ticket_id)

    Return a single ticket with all occurrences.

  `get_tickets`(order_by='-last_occurrence_time', limit=50, offset=0)

    Selects tickets from the database.

  `record_ticket`(record, data, hash, app_id)

    Records a log record as ticket.

  `setup_backend`()

    Setup the database backend.

  `solve_ticket`(ticket_id)

    Marks a ticket as solved.

class `logbook.ticketing.``SQLAlchemyBackend`(**options)

  Implements a backend that is writing into a database SQLAlchemy can interface.

  This backend takes some additional options:

  table_prefix
    an optional table prefix for all tables created by the logbook ticketing handler.
  metadata
    an optional SQLAlchemy metadata object for the table creation.
  autocreate_tables
    can be set to False to disable the automatic creation of the logbook tables.

class `logbook.ticketing.``MongoDBBackend`(**options)

  Implements a backend that writes into a MongoDB database.

### Navigation

- index
- modules |
- next |
- previous |
- Logbook 0.6.1-dev »
- API Documentation »