interoperability_production_logs
Retrieve and filter interoperability production logs from InterSystems IRIS to monitor system events, errors, warnings, and alerts for troubleshooting.
Instructions
Get Interoperability Production logs
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| item_name | No | ||
| limit | No | ||
| log_type_info | No | ||
| log_type_alert | No | ||
| log_type_error | No | ||
| log_type_warning | No |
Implementation Reference
- The handler function for the 'interoperability_production_logs' tool. It queries the Ens_Util.Log table using SQL to fetch recent logs filtered by item_name, limit, and selected log types (error, warning, info, alert), then formats and returns them as a string.@server.tool(description="Get Interoperability Production logs") async def interoperability_production_logs( ctx: Context, item_name: str = None, limit: int = 10, log_type_info: bool = False, log_type_alert: bool = False, log_type_error: bool = True, log_type_warning: bool = True, ) -> str: logs = [] log_type = [] log_type_info and log_type.append(LogType.Info.value) log_type_alert and log_type.append(LogType.Alert.value) log_type_error and log_type.append(LogType.Error.value) log_type_warning and log_type.append(LogType.Warning.value) db = ctx.db with db.cursor() as cur: sql = f""" select top ? TimeLogged , %External(Type) Type, ConfigName, Text from Ens_Util.Log where {"ConfigName = ?" if item_name else "1=1"} {f"and type in ({', '.join(['?'] * len(log_type))})" if log_type else ""} order by id desc """ params = [limit, *([item_name] if item_name else []), *log_type] cur.execute(sql, params) for row in cur.fetchall(): logs.append(f"{row[0]} {row[1]} {row[2]} {row[3]}") return "\n".join(logs)