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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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:
| Name | Type | Description | Default |
|---|---|---|---|
message | str | 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))