The chat responses are generated using Generative AI technology for intuitive search and may not be entirely accurate. They are not intended as professional advice. For full details, including our use rights, privacy practices and potential export control restrictions, please refer to our Generative AI Service Privacy Information. As this is a test version, please let us know if something irritating comes up. Like you get recommended a chocolate fudge ice cream instead of an energy managing application. If that occurs, please use the feedback button in our contact form!
Skip to content

Revolutionize your AI operations across locations with seamless cloud integration. Our Industrial AI Suite runs on a new line of Industrial PCs powered by NVIDIA's GPUs accelerating AI execution. This makes complex AI tasks in advanced automation broadly available and boosts efficiency.

log_module

Logging in AI Inference Server

The AI Inference Server's Python runtime provides a logger module which is embedded in the runtime and not available as a separate Python module. The AI SDK's log_module mimics the behavior of this embedded runtime logger by offering the same methods backed by the standard Python logging framework.

This module is not a real logging framework, it only exists to help you write code against the logging framework on the Edge device.

Using the AI SDK's LocalPipelineRunner the log_module wheel is automatically provided during the test run. If you want to run your code containing calls to log_module without the LocalPipelineRunner, you have to install the log_module wheel in your local execution environment. You should not install log_module on the Edge device itself.

The log level can be set through the environment variable LOGLEVEL. Possible values are: TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL. Please note that this setting only applies for local testing. For running on the Edge device, you can set the log level in the AI Inference Server application.

LogModule

Facade class for exposing the AI Inference Server's log methods.

This class can be imported and used the same way as on the Edge device.

Example usage::

from log_module import LogModule
logger = LogModule()

def run(data: str):
    logger.trace("trace from EMBEDDED Python")
    logger.info("info from EMBEDDED Python")
    logger.warning("warning from EMBEDDED Python")
    logger.warn("warn from EMBEDDED Python")
    logger.debug("debug from EMBEDDED Python")
    logger.error("error from EMBEDDED Python")
    logger.critical("critical from EMBEDDED Python")
    return {"ready": False, "output": None}
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
class LogModule:
    """
    Facade class for exposing the AI Inference Server's log methods.

    This class can be imported and used the same way as on the Edge device.

    Example usage::

        from log_module import LogModule
        logger = LogModule()

        def run(data: str):
            logger.trace("trace from EMBEDDED Python")
            logger.info("info from EMBEDDED Python")
            logger.warning("warning from EMBEDDED Python")
            logger.warn("warn from EMBEDDED Python")
            logger.debug("debug from EMBEDDED Python")
            logger.error("error from EMBEDDED Python")
            logger.critical("critical from EMBEDDED Python")
            return {"ready": False, "output": None}
    """

    def __init__(self):
        self.TRACE_LEVEL = 5
        logging.addLevelName(self.TRACE_LEVEL, "TRACE")
        loglevel = os.environ.get("LOGLEVEL", "DEBUG").upper()
        if loglevel not in ["TRACE", "INFO", "WARNING", "ERROR", "CRITICAL"]:
            loglevel = "DEBUG"
        logging.basicConfig(level=loglevel)
        self.logger = logging.getLogger(__name__)
        self.logger.setLevel(loglevel)

    def trace(self, message):
        """
        Logs a message on TRACE level.

        Args:
            message (str): The log message
        """
        if self.logger.isEnabledFor(self.TRACE_LEVEL):
            self.logger.log(self.TRACE_LEVEL, _prefix(message))

    def debug(self, message):
        """
        Logs a message on DEBUG level.

        Args:
            message (str): The log message
        """
        self.logger.debug(_prefix(message))

    def info(self, message):
        """
        Logs a message on INFO level.

        Args:
            message (str): The log message
        """
        self.logger.info(_prefix(message))

    def warning(self, message):
        """
        Logs a message on WARNING level.

        Args:
            message (str): The log message
        """
        self.logger.warning(_prefix(message))

    def warn(self, message):
        """
        Logs a message on WARNING level.

        Args:
            message (str): The log message
        """
        self.warning(message)

    def error(self, message):
        """
        Logs a message on ERROR level.

        Args:
            message (str): The log message
        """
        self.logger.error(_prefix(message))

    def critical(self, message):
        """
        Logs a message on CRITICAL level.

        Args:
            message (str): The log message
        """
        self.logger.critical(_prefix(message))

trace(message)

Logs a message on TRACE level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def trace(self, message):
    """
    Logs a message on TRACE level.

    Args:
        message (str): The log message
    """
    if self.logger.isEnabledFor(self.TRACE_LEVEL):
        self.logger.log(self.TRACE_LEVEL, _prefix(message))

debug(message)

Logs a message on DEBUG level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def debug(self, message):
    """
    Logs a message on DEBUG level.

    Args:
        message (str): The log message
    """
    self.logger.debug(_prefix(message))

info(message)

Logs a message on INFO level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def info(self, message):
    """
    Logs a message on INFO level.

    Args:
        message (str): The log message
    """
    self.logger.info(_prefix(message))

warning(message)

Logs a message on WARNING level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def warning(self, message):
    """
    Logs a message on WARNING level.

    Args:
        message (str): The log message
    """
    self.logger.warning(_prefix(message))

warn(message)

Logs a message on WARNING level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def warn(self, message):
    """
    Logs a message on WARNING level.

    Args:
        message (str): The log message
    """
    self.warning(message)

error(message)

Logs a message on ERROR level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def error(self, message):
    """
    Logs a message on ERROR level.

    Args:
        message (str): The log message
    """
    self.logger.error(_prefix(message))

critical(message)

Logs a message on CRITICAL level.

Parameters:

NameTypeDescriptionDefault
messagestr

The log message

required
Source code in docs/industrial-ai-suite/sdk/log_module/mock_logger.py
def critical(self, message):
    """
    Logs a message on CRITICAL level.

    Args:
        message (str): The log message
    """
    self.logger.critical(_prefix(message))