Scan Log
The Log view records every card scan since the app started, newest first. Use it to verify that cards are being read and typed correctly, and to export data for other systems.
Log columns
Section titled “Log columns”The table has six columns:
| Column | Description |
|---|---|
| Time | The local time when the scan was recorded. |
| Reader | The name of the PC/SC reader that detected the card. |
| UID | The card UID as a hex string (e.g. 04A1B2C3). |
| Length | The UID length in bytes (typically 4 or 7). |
| Typed | ✓ if the UID was sent as keystrokes; — if it was not. |
| Status | The outcome of the scan event (see below). |
Status values
Section titled “Status values”Each scan is recorded with one of the following status values:
| Status label | Meaning |
|---|---|
| OK | The UID was read and typed successfully. |
| Read error | The reader detected a card but could not read the UID. The card may have been moved away before the read completed. |
| Typing off | Typing was disarmed when the card was scanned. The UID was not typed. |
| No accessibility | On macOS, the Accessibility permission was not granted. The UID was not typed. Grant the permission and try again (see Installation). |
| Type error | The UID was read and typing was armed, but sending the keystrokes failed. |
Log retention
Section titled “Log retention”The log keeps the most recent 500 scans in memory (log_retention = 500). When the limit is reached, the oldest entry is dropped to make room for the newest. The count resets when the app is quit — the in-memory log is not written to disk unless you export it.
Exporting to CSV
Section titled “Exporting to CSV”Click Export CSV in the top-right of the Log view. A save dialog opens with the default filename nfc-scans.csv. Choose a location and confirm to write the file.
The exported CSV contains one header row followed by one row per scan:
| Column header | Content |
|---|---|
timestamp | ISO 8601 timestamp of the scan. |
reader | Reader name. |
uidHex | UID as a hex string. |
uidLength | UID length in bytes. |
typed | true or false. |
typedString | The exact string that was typed (including the trailing key character, if any). |
status | Status as a machine-readable string: ok, read_error, typing_disabled, no_accessibility, or type_error. |
Field values that contain a comma are automatically quoted per standard CSV rules.