Print Log¶
The Print Log provides a chronological table of all print activity across your printers, giving you a quick at-a-glance history of every print.
Overview¶
The Print Log is a dedicated view mode within the Archives page that focuses on print activity as a flat, filterable table. Unlike the standard archive views (grid, list, calendar), the Print Log shows one row per print event with key details at a glance.
Accessing the Print Log¶
- Go to the Archives page
- Click the Print Log button in the header toolbar (next to the grid/list/calendar view toggles)
Table Columns¶
Each row in the Print Log represents a single print event:
| Column | Description |
|---|---|
| Date/Time | When the print completed |
| Print Name | Name of the print (with thumbnail) |
| Printer | Which printer ran the job |
| User | Username who started the print (when authentication is enabled) |
| Status | Result badge (color-coded), with the failure-cause classification shown underneath when set |
| Duration | Total print time |
| Filament | Material type and color indicator |
| Actions | Per-row edit and delete buttons (see Per-row actions) |
Status Badges¶
| Status | Color | Description |
|---|---|---|
| Completed | Green | Print finished successfully |
| Failed | Red | Print encountered an error |
| Stopped | Orange | Print was manually stopped |
| Cancelled | Grey | Print was cancelled before finishing |
| Skipped | Purple | Print was skipped in the queue |
Filtering¶
Narrow down log entries using the filter controls at the top of the table:
| Filter | Description |
|---|---|
| Search | Free-text search across print names |
| Printer | Show entries from a specific printer |
| User | Show entries from a specific user |
| Status | Filter by result (completed, failed, stopped, cancelled, skipped) |
| Date From | Show entries from this date onward |
| Date To | Show entries up to this date |
Combining Filters¶
All filters can be combined. For example, show only failed prints from "Workshop X1C" in the last week by selecting the printer, status, and date range together.
Pagination¶
The Print Log supports configurable pagination for navigating large histories:
| Setting | Options |
|---|---|
| Rows per page | 10, 25, 50, or 100 |
| Navigation | Previous / Next page buttons |
The current page range and total entry count are displayed alongside the navigation controls.
Per-row actions¶
Every row in the Print Log has two action buttons on the right:
Edit (classification)¶
Click the pencil icon to classify the print run -- set or change the failure cause and status on a single entry.
| Field | Values |
|---|---|
| Status | Completed, Failed, Stopped, Cancelled, Skipped |
| Failure cause | Adhesion failure, Spaghetti / Detached, Layer shift, Clogged nozzle, Filament runout, Warping, Stringing, Under-extrusion, Power failure, User cancelled, Other |
The classification you pick here is what the Failure Analysis widget groups by, so updates flow into the dashboard charts immediately.
Works on orphan entries too
If a print failed before any archive was created (for example, a dispatch error or a manual log entry), there is no archive to edit through -- the Print Log row editor is the only way to classify those runs.
Delete (single row)¶
Click the trash icon to remove a single entry from the log. The entry's filament, time, and cost contributions drop out of Quick Stats in the same response cycle. The matching archive (if any) is not affected -- the log row is independent of the archive.
Permission gating
Both buttons honour the same ownership shape as archive edits. With ARCHIVES_UPDATE_OWN / ARCHIVES_DELETE_OWN you can only act on entries you created; ARCHIVES_UPDATE_ALL / ARCHIVES_DELETE_ALL see every entry.
Clearing the Log¶
The Clear button removes all log entries from the database.
Permanent Action
Clearing the log permanently deletes all log entries. This action cannot be undone.
Archives Are Not Affected
The Print Log is stored independently from your archives and print queue. Clearing the log only removes log entries -- your archived 3MF files, metadata, and queue history remain untouched.
How It Works¶
Automatic Logging¶
Log entries are written automatically whenever a print completes. No configuration is required -- once archiving is active, print events are recorded in the log.
Independent Storage¶
The Print Log uses its own database table (print_log_entries), separate from the archives table. This means:
- Log entries exist independently of archives
- Deleting an archive does not remove its log entry
- Clearing the log does not affect archives
- The log is lightweight and optimized for fast querying
Permissions¶
When authentication is enabled, the Print Log respects the following permissions:
| Action | Required Permission |
|---|---|
| View the Print Log | ARCHIVES_READ |
| Edit classification on a row you own | ARCHIVES_UPDATE_OWN |
| Edit classification on any row | ARCHIVES_UPDATE_ALL |
| Delete a single row you own | ARCHIVES_DELETE_OWN |
| Delete any single row | ARCHIVES_DELETE_ALL |
| Clear all log entries | ARCHIVES_DELETE_ALL |
API Access¶
List Log Entries¶
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
search | string | Search print names |
printer_id | integer | Filter by printer ID |
created_by_username | string | Filter by username |
status | string | Filter by status (completed, failed, stopped, cancelled, skipped) |
date_from | datetime | Start of date range |
date_to | datetime | End of date range |
limit | integer | Number of entries per page (default 25) |
offset | integer | Pagination offset |
Example:
Update a Single Entry¶
Edit the classification (failure cause and/or status) on one entry. Requires ARCHIVES_UPDATE_OWN for entries you created, or ARCHIVES_UPDATE_ALL for any entry.
Request body:
Both fields are optional. To clear an existing classification send "failure_reason": "".
| Field | Valid values |
|---|---|
failure_reason | "" (clear), adhesionFailure, spaghettiDetached, layerShift, cloggedNozzle, filamentRunout, warping, stringing, underExtrusion, powerFailure, userCancelled, other |
status | completed, failed, stopped, cancelled, skipped |
Unknown values return HTTP 400 -- the canonical vocabulary above is enforced server-side.
Example:
curl -X PATCH -H "X-API-Key: your-key" -H "Content-Type: application/json" \
-d '{"failure_reason": "cloggedNozzle"}' \
"http://localhost:8000/api/v1/print-log/42"
Delete a Single Entry¶
Removes one entry from the log. The entry's filament, time, and cost contributions drop out of /api/v1/archives/stats on the same request cycle. The linked archive (if any) is untouched. Requires ARCHIVES_DELETE_OWN for entries you created, or ARCHIVES_DELETE_ALL for any entry.
Example:
Clear All Log Entries¶
Removes all log entries. Requires ARCHIVES_DELETE_ALL permission.
Example:
Tips¶
Quick Status Check
Use the status filter to quickly find all failed prints and investigate patterns.
Date Range Analysis
Set a date range to review a specific time period, such as "last week" or "this month."
Per-User Tracking
When authentication is enabled, filter by user to see each person's print activity.
Lightweight History
The Print Log loads faster than the full archive views since it only fetches tabular data without thumbnails and 3MF metadata.