Skip to main content

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.

System Log Screen

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​

FieldMeaningDefault
Search PeriodYYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm range00:00 29 days ago from today ~ 23:59 today
Level전체 / INFO / WARN / ERRORAll

Left Actions​

ButtonAction
↻ 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)​

#ColumnDisplay
1Timetimestamp.iso (down to ms) — center aligned, default descending order (most recent on top)
2LevelRounded 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
3MessageLog body (long messages auto-wrap, click to expand)

Page size: 10 / 20 / 50 / 100 / 1000 selectable (default 100).

Right Actions​

ButtonAction
↻ Refreshlog.list()
🗑 Delete Alllog.truncate() — confirmation dialog → deletes all (pe.app_system_log truncate). Cannot be undone

4. Frequently Seen Patterns​

Message / LevelMeaning / 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 detectedVery 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=noneAuthentication failed call — key missing
WARN [API_ACCESS] ... status=401 auth=deprecated_queryDeprecated ?api_key= query authentication attempt — need to switch to header/Bearer
ERROR [Cassandra*] timeout / coordinator overloadCheck DB load / disk / heap. node-info.sh
INFO [SparkPlugSession] NBIRTH publish complete seq=0Sparkplug normal restart
INFO [SparkPlugSession] DBIRTH publish complete devices=NSparkplug device birth — N OPC published birth

5. Data Source / API Calls​

ActionAPI
SearchGET /system/log/search (Query: s_date_range, level, ...)
Delete AllPOST /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​

SymptomCause / Solution
Search results emptyOutside default 30-day range / excluded by level filter. Set Period to 1 year, Level to All
Screen sluggish from too many logsChange page size from 100 → 20, or narrow Level to ERROR
ERROR count differs from System Errors (Today) card numberCard counts since 00:00 today / this screen searches the period the user set
Stats show 0 after Delete AllNormal — stays empty until new ERRORs come in
Log retention too long, burdening diskShorten system.log.ttl.days / combine clean.sh with node-cleanup.sh

7. Learn More​