System Log
This screen searches and reviews the system log (Cassandra pe.app_system_log) recorded by the gateway during boot / collection / communication / API calls.

Click the red number on the home card System Errors (Today) → automatically navigates (ERRORs from today only), or navigate directly via /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 | 00:00 29 days ago from today ~ 23:59 today |
| Level | 전체 / INFO / WARN / ERROR | All |
Left Actions
| Button | Action |
|---|---|
| ↻ Refresh (top of page) | log.search() — re-query with current form values |
| 🔍 Search (blue button, bottom-right of left panel) | log.search() — calls /system/log/search with form values |
The left form only has two fields — Search Period (date range picker) + Level (combo) — sharing the same pp-cell-pill tone label / rounded form design as other search screens (/ui/connect/list, /ui/point).
3. Right — Log List (DataTables)
| # | Column | Display |
|---|---|---|
| 1 | Time | timestamp.iso (down to ms) — center aligned, default descending order (most recent on top) |
| 2 | Level | Rounded capsule badge (border-radius: 5px) — 🟦 INFO (blue solid) / 🟧 WARN (orange solid) / 🟥 ERROR (red solid). Same tone as pp-cell-pill on other pages such as /ui/connect/list |
| 3 | Message | Log body (long messages auto-wrap, click to expand) |
Page size: 10 / 20 / 50 / 100 / 1000 selectable (default 100).
Right Actions
| Button | Action |
|---|---|
| ↻ Refresh | log.list() |
| 🗑 Delete All | log.truncate() — confirmation dialog → deletes all (pe.app_system_log truncate). Cannot be undone |
4. Frequently Seen 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 address / data type (format) |
WARN [SchedulerStartListener] startup race detected | Very rare startup race — retry restart.sh once more |
INFO [TAG_WRITE] OK opc_id=... tag_id=... value=... user_agent=... remote_ip=... | Normal write record — for audit. remote_ip defaults to RemoteAddr, first IP is X-Forwarded-For when reverse proxy opt-in |
INFO [API_ACCESS] method=GET path=/api/v1/... status=200 ... | REST API call 1-line audit (ApiAccessLogFilter) — all /api/* calls come in. apikey masked with prefix 4 chars + length |
WARN [API_ACCESS] ... status=401 auth=none | Authentication failed call — key missing |
WARN [API_ACCESS] ... status=401 auth=deprecated_query | Deprecated ?api_key= query authentication attempt — need to switch to header/Bearer |
ERROR [Cassandra*] timeout / coordinator overload | Check DB load / disk / heap. node-info.sh |
INFO [SparkPlugSession] NBIRTH publish complete seq=0 | Sparkplug normal restart |
INFO [SparkPlugSession] DBIRTH publish complete devices=N | Sparkplug device birth — N OPC published birth |
5. Data Source / API Calls
| 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. TTL can be configured separately (app.properties's system.log.ttl.days).
6. Common Pitfalls
| Symptom | Cause / Solution |
|---|---|
| Search results empty | Outside default 30-day range / excluded by level filter. Set Period to 1 year, Level to All |
| Screen sluggish from too many logs | Change page size from 100 → 20, or narrow Level to ERROR |
| ERROR count differs from System Errors (Today) card number | Card counts since 00:00 today / this screen searches the period the user set |
| Stats show 0 after Delete All | Normal — stays empty until new ERRORs come in |
| Log retention too long, burdening disk | Shorten system.log.ttl.days / combine clean.sh with node-cleanup.sh |
7. Learn More
- Source/storage location of the system log itself: Monitoring (Operator/REST)
- Integrated tail of log files (catalina.out, cassandra/system.log): Diagnostics and Inspection
- Tracking configuration changes: Web UI Configuration