Skip to content

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.