Logging

The pysui package has logging enabled. However; it is up to the application(s) using the SDK to setup logging configuration. If this is not done, pysui logging information is lost.

Module Logging

Select pysui modules are setup for logging and have the following construct:

logger = logging.getLogger("pysui.MODULE_NAME")
if not logging.getLogger().handlers:
    logger.addHandler(logging.NullHandler())
    logger.propagate = False

As you can see, if a root logger is not setup, pysui log messages go to the NullHandler (no-op)

With this construct, the root logger (in application) must be configured prior to the inclusion of pysui modules. For example:

import logging

logging.basicConfig(
    filename="myapplication.log",
    filemode="w",
    encoding="utf-8",
    format="%(asctime)s %(module)s %(levelname)s %(message)s",
    level=logging.DEBUG,
)

from pysui import SuiConfig, SyncClient

def main():
    """Main entry point for application."""
    client = SyncClient(SuiConfig.default_config())

    # etc.

if __name__ == "__main__":
    main()

Log Enabled Modules

Not every module in pysui is log enabled and adding logging and logging messages is an ongoing effort. The following have been enabled and have various degrees of logging messages:

Module

pysui.sui.sui_config

pysui.sui.sui_clients.sync_client

pysui.sui.sui_clients.async_client

pysui.sui.sui_clients.subscribe

pysui.sui.sui_txn.sync_transaction

pysui.sui.sui_txn.async_transaction

pysui.sui.sui_txn.transaction_builder