Viewing System Logs (/ui/system/log/list)
This screen lets you search and review the system logs (Cassandra pe.app_system_log) that the gateway writes during boot, collection, communication, and API calls.
Click the red number on the System Errors (Today) home card → you are taken here automatically (today's ERROR entries only), or go directly to /ui/system/log/list.
1. Screen Layout
┌─────────┬──────────────────────────────────────────────────┐
│ 좌측 │ 우측 │
│ 검색폼 │ 로그 목록 (DataTables) │
│ │ │
│ [기간] │ ┌───────────┬───────┬──────────────────────────┐ │
│ [레벨] │ │ 시간 │ 레벨 │ 메세지 │ │
│ │ ├───────────┼───────┼──────────────────────────┤ │
│ [검색] │ │ ... │ INFO │ ... │ │
└─────────┴──────────────────────────────────────────────────┘
Default search period: last 30 days (00:00 ~ 23:59).
2. Left Search Form
| Field | Meaning | Default |
|---|---|---|
| Search period | YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm range | 29 days before today 00:00 ~ today 23:59 |
| Level | 전체 / INFO / WARN / ERROR | All |
Left-Side Actions
| Button | Action |
|---|---|
| ↻ Refresh (top of page) | log.search() — re-runs the query with the current form values |
| 🔍 Search (blue button, bottom right of left panel) | log.search() — calls /system/log/search with the form values |
The left form has only two fields — search period (date range picker) and level (combo box) — and shares the same pp-cell-pill label / rounded form design as the other search screens (/ui/connect/list, /ui/point).
3. Right Side — Log List (DataTables)
| # | Column | Display |
|---|---|---|
| 1 | Time | timestamp.iso (down to ms) — center-aligned, descending by default (most recent first) |
| 2 | Level | Rounded capsule badge (border-radius: 5px) — 🟦 INFO (solid blue) / 🟧 WARN (solid orange) / 🟥 ERROR (solid red). Same tone as the pp-cell-pill used on other pages such as /ui/connect/list |
| 3 | Message | Log body (long messages wrap automatically; click to expand) |
Page size: 10 / 20 / 50 / 100 / 1000 selectable (default 100).
Right-Side Actions
| Button | Action |
|---|---|
| ↻ Refresh | log.list() |
| 🗑 Delete All | log.truncate() — confirmation dialog → deletes everything (pe.app_system_log truncate). Cannot be undone |
4. Common Patterns
| Message / Level | Meaning / Next Action |
|---|---|
ERROR [PLCDriverConnector] connection failed ... | PLC connection failed. Check IP/port/firewall |
ERROR [PLCValueReader] read failed at TAG_* | Review that tag's address / data type (format) |
WARN [SchedulerStartListener] startup race detected | Very rare startup race — try restart.sh once more |
INFO [TAG_WRITE] OK opc_id=... tag_id=... value=... user_agent=... remote_ip=... | Normal write record — for audit purposes. remote_ip is RemoteAddr by default; with reverse proxy opt-in, the first IP in X-Forwarded-For |
INFO [API_ACCESS] method=GET path=/api/v1/... status=200 ... | One-line audit of a REST API call (ApiAccessLogFilter) — every /api/* call appears here. The apikey is masked to a 4-character prefix plus length |
WARN [API_ACCESS] ... status=401 auth=none | Authentication failure — missing key |
WARN [API_ACCESS] ... status=401 auth=deprecated_query | Attempt to authenticate with the discontinued ?api_key= query — must switch to header/Bearer |
ERROR [Cassandra*] timeout / coordinator overload | Check DB load / disk / heap. node-info.sh |
INFO [SparkPlugSession] NBIRTH publish complete seq=0 | Normal Sparkplug restart |
INFO [SparkPlugSession] DBIRTH publish complete devices=N | Sparkplug device birth — N OPCs issued a birth message |
5. Data Source / APIs Called
| Action | API |
|---|---|
| Search | GET /system/log/search (Query: s_date_range, level, ...) |
| Delete All | POST /system/log/truncate |
Internal storage: Cassandra pe.app_system_log table. A separate TTL can be configured (system.log.ttl.days in app.properties).
6. Common Pitfalls
| Symptom | Cause / Resolution |
|---|---|
| Search results empty | Outside the default 30-day range / filtered out by level. Set period to one year and level to All |
| Screen sluggish due to too many logs | Change page size from 100 to 20, or narrow level to ERROR |
| ERROR count differs from the System Errors (Today) card | The card counts since today 00:00; this screen uses the period you selected |
| Statistics show 0 after Delete All | Normal — stays empty until new ERRORs arrive |
| Log retention too long, straining disk | Shorten system.log.ttl.days / combine clean.sh with node-cleanup.sh |
7. Learn More
- Origin/storage location of the system logs themselves: Monitoring (Operator/REST)
- Combined tail of log files (catalina.out, cassandra/system.log): Diagnostics / Inspection
- Tracking configuration changes: System Configuration