API documentation

This section details the public API for configuring application logging across the SKA project.

Python

The API for the configuration using Python is shown below.

Public API Documentation

Imports

Module init code.

ska_ser_log_transactions.transaction

alias of ska_ser_log_transactions.transactions.Transaction

ska_ser_log_transactions.async_transaction

alias of ska_ser_log_transactions.transactions.AsyncTransaction

Classes

class ska_ser_log_transactions.transactions.TransactionBase(name: str, params: dict = {}, transaction_id: str = '', transaction_id_key: str = 'transaction_id', logger: Optional[<Mock id='140077651555984'>] = None)[source]

Transaction context handler.

Provides:

- Transaction ID::
* Re-use existing transaction ID, if available
* If no transaction ID, or empty or None, then generate a new ID
* context handler returns the transaction ID used
- Log messages on entry, exit, and exception
def command(self, parameter_json):
    parameters = json.reads(parameter_json)
    with transaction('My Command', parameters) as transaction_id:
        # ...
        parameters['transaction_id'] = transaction_id
        device.further_command(json.dumps(pars))
        # ...

def command(self, parameter_json):
    parameters = json.reads(parameter_json)
    with transaction('My Command', parameters, transaction_id="123") as transaction_id:
        # ...
        parameters['transaction_id'] = transaction_id
        device.further_command(json.dumps(pars))
        # ...

def command(self, parameter_json):
    parameters = json.reads(parameter_json)
    parameters["txn_id_key"] = 123
    with transaction('My Command', parameters, transaction_id_key="txn_id_key")
        as transaction_id:
        # ...
        parameters['transaction_id'] = transaction_id
        device.further_command(json.dumps(pars))
        # ...
Log message formats:
On Entry:
Transaction[id]: Enter[name] with parameters [arguments] marker[marker]
On Exit:
Transaction[id]: Exit[name] marker[marker]
On exception:
Transaction[id]: Exception[name] marker[marker]
Stacktrace
log_entry()[source]

Log the entry message

log_exit(exc_type)[source]

Log the exit message and exception if it occurs

Parameters

exc_type (exception_type) – Exception type

class ska_ser_log_transactions.transactions.Transaction(name: str, params: dict = {}, transaction_id: str = '', transaction_id_key: str = 'transaction_id', logger: Optional[<Mock id='140077651555984'>] = None)[source]

Bases: ska_ser_log_transactions.transactions.TransactionBase

class ska_ser_log_transactions.transactions.AsyncTransaction(name: str, params: dict = {}, transaction_id: str = '', transaction_id_key: str = 'transaction_id', logger: Optional[<Mock id='140077651555984'>] = None)[source]

Bases: ska_ser_log_transactions.transactions.TransactionBase

class ska_ser_log_transactions.transactions.TransactionIdGenerator[source]

TransactionIdGenerator retrieves a transaction id from skuid. Skuid may fetch the id from the service if the SKUID_URL is set or alternatively generate one.