본문으로 건너뛰기

시스템 로그 보기 (/ui/system/log/list)

게이트웨이가 부팅 / 수집 / 통신 / API 호출 중에 남긴 시스템 로그 (Cassandra pe.app_system_log) 를 검색·확인하는 화면입니다.

홈 카드 시스템 오류 (오늘) 의 빨간 숫자 클릭 → 자동 이동 (오늘 ERROR 만), 또는 직접 /ui/system/log/list.


1. 화면 구성

┌─────────┬──────────────────────────────────────────────────┐
│ 좌측 │ 우측 │
│ 검색폼 │ 로그 목록 (DataTables) │
│ │ │
│ [기간] │ ┌───────────┬───────┬──────────────────────────┐ │
│ [레벨] │ │ 시간 │ 레벨 │ 메세지 │ │
│ │ ├───────────┼───────┼──────────────────────────┤ │
│ [검색] │ │ ... │ INFO │ ... │ │
└─────────┴──────────────────────────────────────────────────┘

기본 검색 기간: 최근 30일 (00:00 ~ 23:59).


2. 좌측 검색 폼

필드의미기본
검색기간YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm 범위오늘로부터 29일 전 00:00 ~ 오늘 23:59
레벨전체 / INFO / WARN / ERROR전체

좌측 액션

버튼동작
↻ 새로고침 (페이지 상단)log.search() — 현재 폼 값으로 다시 조회
🔍 검색 (파란 버튼, 좌측 패널 우하단)log.search() — 폼 값으로 /system/log/search 호출

좌측 폼은 검색 기간 (date range picker) + 레벨 (콤보) 두 필드만 — 다른 검색 화면 (/ui/connect/list, /ui/point) 와 동일한 pp-cell-pill 톤의 라벨 / 라운드 폼 디자인을 공유합니다.


3. 우측 — 로그 목록 (DataTables)

#컬럼표시
1시간timestamp.iso (ms 까지) — 가운데 정렬, default 내림차순 (최근 위)
2레벨라운드 캡슐 뱃지 (border-radius: 5px) — 🟦 INFO (파랑 solid) / 🟧 WARN (주황 solid) / 🟥 ERROR (빨강 solid). /ui/connect/list 등 다른 페이지의 pp-cell-pill 과 동일 톤
3메세지로그 본문 (긴 메시지 자동 줄바꿈, 클릭하면 펼침)

페이지 크기: 10 / 20 / 50 / 100 / 1000 선택 가능 (기본 100).

우측 액션

버튼동작
↻ 새로고침log.list()
🗑 모두 삭제log.truncate() — 확인 다이얼로그 → 전체 삭제 (pe.app_system_log truncate). 돌이킬 수 없음

4. 자주 보는 패턴

메시지 / 레벨의미 / 다음 조치
ERROR [PLCDriverConnector] connection failed ...PLC 연결 실패. IP/포트/방화벽 점검
ERROR [PLCValueReader] read failed at TAG_*그 태그 주소 / 데이터 타입(format) 검토
WARN [SchedulerStartListener] startup race detected매우 드문 시작 race — restart.sh 한 번 더
INFO [TAG_WRITE] OK opc_id=... tag_id=... value=... user_agent=... remote_ip=...정상 쓰기 기록 — audit 용. remote_ip 는 기본 RemoteAddr, reverse proxy opt-in 시 X-Forwarded-For 첫 IP
INFO [API_ACCESS] method=GET path=/api/v1/... status=200 ...REST API 호출 1라인 audit (ApiAccessLogFilter) — 모든 /api/* 호출이 들어옴. apikey 는 prefix 4자 + 길이로 마스킹
WARN [API_ACCESS] ... status=401 auth=none인증 실패 호출 — 키 누락
WARN [API_ACCESS] ... status=401 auth=deprecated_query지원 중단된 ?api_key= 쿼리 인증 시도 — 헤더/Bearer 로 전환 필요
ERROR [Cassandra*] timeout / coordinator overloadDB 부하 / 디스크 / heap 점검. node-info.sh
INFO [SparkPlugSession] NBIRTH publish complete seq=0Sparkplug 정상 재시작
INFO [SparkPlugSession] DBIRTH publish complete devices=NSparkplug 디바이스 출생 — N 개 OPC 가 birth 발행됨

5. 데이터 출처 / 호출 API

동작API
검색GET /system/log/search (Query: s_date_range, level, ...)
모두 삭제POST /system/log/truncate

내부 저장: Cassandra pe.app_system_log 테이블. TTL 별도 설정 가능 (app.propertiessystem.log.ttl.days).


6. 자주 빠지는 함정

증상원인 / 해결
검색 결과 비어있음기본 30일 범위 밖 / 레벨 필터로 누락. 기간 을 1년으로, 레벨전체
너무 많은 로그로 화면이 무거움페이지 크기 100 → 20 으로, 또는 레벨 을 ERROR 로 좁힘
ERROR 갯수가 시스템 오류 (오늘) 카드 숫자와 다름카드는 오늘 00:00 이후 / 이 화면 검색은 사용자가 정한 기간
모두 삭제 후 통계 0정상 — 새 ERROR 가 들어올 때까지 빈 상태
로그 보존이 너무 길어 디스크 부담system.log.ttl.days 단축 / clean.shnode-cleanup.sh 조합

7. 더 알아보기