Logs Models¶
Models for general application logging.
class
automation.dbmodels.logs.Logs(*args, **kwargs)Database model for Application Logs.
Logs store system messages, errors, and informational records, optionally linked to events or alarms.
create(message, user, description=None, classification=None, alarm_summary_id=None, event_id=None, timestamp=None)Creates a new log entry.
Parameters:
- message (str): Log content.
- user (User): User creating the log.
- description (str, optional): Additional details.
- classification (str, optional): Log type/category.
- alarm_summary_id (int, optional): Link to an alarm summary entry.
- event_id (int, optional): Link to an event.
- timestamp (datetime, optional): Log time.
Returns:
- tuple: (Query object, status message)
read_lasts(lasts=1)Retrieves the last N logs.
Parameters:
- lasts (int): Number of logs to retrieve.
Returns:
- list: List of serialized log dictionaries.
filter_by(usernames=None, alarm_names=None, event_ids=None, description='', message='', classification='', greater_than_timestamp=None, less_than_timestamp=None, timezone='UTC', page=1, limit=20)Filters logs based on various criteria with pagination.
Parameters:
- usernames (list[str]): Filter by user.
- alarm_names (list[str]): Filter by linked alarm name.
- event_ids (list[int]): Filter by linked event ID.
- message, description, classification: Text search.
- greater_than_timestamp, less_than_timestamp: Time range.
- page, limit: Pagination control.
Returns:
- dict: {data: list, pagination: dict}
serialize(self, timezone=None)Serializes the log record.
Parameters:
- timezone (str, optional): Timezone to convert timestamp to. If None, uses default TIMEZONE.