← 목록
기타 2026-07-07 2KB 읽기 2분

로깅카드 — python logging/winston 대응 검증 (파동① 존재≠동작)

개요

crowny-rpnkit 대응카드 시리즈(SQL카드와 동일 방법론)에 로깅 카드를 추가. libs/로깅.한선(정본)의 전 API를 실컴파일+실행으로 실측 검증하고, 조용히 동작 안 하는 함정을 적발.

무엇을 했는지

  1. 자산 인벤토리: libs/로깅.한선(158줄, 정본) vs libs/로거.한선(31줄, 데모/충돌 위험) 식별.
  2. 전 API 실측: 레벨필터링·파일기록·JSON/기본 포맷·컨텍스트·로거객체·성능타이머·필터읽기 — hanseonc_high → crownyc run, stderr 분리, perl alarm 타임아웃.
  3. 카드 + 검증스크립트(로깅검증.sh, 7/7 PASS) 작성.

핵심 적발(버그, 수리 안 함 — 파동② 대상)

  • JSON 포맷에서 로그 컨텍스트(구조화 메타데이터)가 계산만 되고 출력에서 통째로 누락(_포맷줄() JSON 분기가 컨텍스트 변수 미참조).
  • 로거경고()/로거오류()가 로거 객체 자신의 레벨 필드를 아예 확인 안 함(로거디버그/정보만 확인).
  • 더 근본적으로 로거 필드는 전역 레벨을 절대 override 못 함(전역이 항상 하한선) — winston child-logger/getLogger().setLevel() 같은 독립 인스턴스 개념이 사실상 무력.
  • 성능 타이머(성능시작/성능끝)가 초단위 정수 정밀도뿐(1초 미만 작업은 항상 "0초").
  • 로그 회전(_로그최대크기/_로그회전수) 변수만 있고 로직 전무 — grep으로 죽은 코드 확인.
  • 로깅.한선+로거.한선 동시 import 시 함수명 충돌(SQL카드 셀DB+셀저장소 충돌과 동일 계열) + 로거.한선의 top-level 부작용 코드.

관련 파일

  • /Users/ef/crowny-rpnkit/대응카드/로깅카드.md
  • /Users/ef/crowny-rpnkit/대응카드/로깅검증.sh
  • /Users/ef/crowny-rpnkit/대응카드/예제/로그01_레벨필터링.한선 ~ 로그06_라이브러리충돌_로거한선.한선
  • 정본: /Users/ef/CrownyOS/crownyc/libs/로깅.한선 (수정 안 함, 라이브 무접촉 유지)

잔여 이슈 (파동② 수리 대상, 우선순위순)

  1. JSON 포맷 컨텍스트 누락 수정
  2. 로거 인스턴스 독립 레벨 재설계(전역 override 가능하게)
  3. 로그 회전 실제 구현
  4. 성능 타이머 ms 정밀도(VM에 ms opcode 있는지 확인 필요)
  5. 로거.한선 import-safe화 또는 폐기