Skip to content

Log Template

A streaming feed of up to 20 newest-first lines, each with optional timestamp and severity. The server keeps a scroll-back backlog you can fetch in-app, while the Live Activity always shows the most recent lines.

Live Activity demonstration

Fields

FieldTypeDescription
templatestringRequired. Must be "log"
linesarrayRequired. 1–20 line objects, newest first (see below)
titlestringLog heading shown above the feed
statestringStatus text shown beside the title (e.g. the source name)
iconstringSF Symbol name (e.g. "doc.text") or MDI icon with mdi: prefix
accent_colorstringNamed color or hex used for the heading icon. Default: blue
background_colorstringBackground color override
text_colorstringText color override

Line object

Each entry in lines is an object:

FieldTypeDescription
textstringRequired. The log message. Max 512 characters
atintegerUnix timestamp (seconds) shown as the line's time
levelstringOne of info, warn, error — tints the line and its marker
Info

Send the newest line first, up to 20 lines per push. To stream a feed, prepend the new line and re-send the array. The Live Activity always shows the most recent lines that fit the ~4 KB APNs payload.

💡 Tip

The server keeps a rolling scroll-back backlog beyond what fits on screen. The PushWard app fetches it with GET /activities/{slug}?include=log_backlog to show full history in-app — the field is read-only and never needs to be sent.

Example: Streaming Deploy Log

Streaming deploy log
{
  "state": "ongoing",
  "content": {
    "template": "log",
    "title": "Deploy Log",
    "state": "pushward-server",
    "icon": "doc.text",
    "accent_color": "purple",
    "lines": [
      { "text": "Rollout complete — 3/3 pods healthy", "at": 1718990000, "level": "info" },
      { "text": "Image pull slow on node arm-2", "at": 1718989950, "level": "warn" },
      { "text": "Applied manifest revision d86246c", "at": 1718989930, "level": "info" },
      { "text": "Sync started by webhook", "at": 1718989900, "level": "info" }
    ]
  }
}

Typical Flow

  1. Start the feed (ended -> ongoing): Send the first batch of lines, newest first
  2. Append events (ongoing -> ongoing): Prepend each new line and re-send lines — older lines roll into the backlog
  3. Finish (ongoing -> ended): Send a closing line, then end the activity

Use Cases

  • CI/CD — live deploy and pipeline logs
  • Home automation — event feeds (motion, doors, presence)
  • Monitoring — rolling alert and incident streams
  • Self-hosting — download/import progress, backup steps, sync activity