LogLab (로그랩) 은 JSON Lines 로그 형식을 설계, 문서화 및 검증하기 위한 툴입니다.
- 로그를 객체지향적이며 재활용 가능한 형태로 설계
- 설계된 로그에 관한 문서 자동 생성
- 실제 출력된 로그가 설계에 맞게 작성되었는지 검증
- Python, C#, C++, TypeScript 및 Java 로그 객체 코드 생성
- Windows, Linux, macOS 에서 사용할 수 있습니다.
uv 기반 설치 (권장)
먼저 Python 용 패키지 매니저인 uv 의 설치가 필요합니다. uv 설치 페이지 를 참고하여 사용자의 환경에 맞게 설치하도록 합니다.
이제 다음과 같은 uv 명령으로 LogLab 을 설치합니다.
uv tool install --from git+https://github.com/haje01/loglab.git loglab설치가 잘 되었다면 로그랩의 커맨드라인 명령인 loglab 을 이용할 수 있습니다. 다음과 같이 입력하여 버전을 확인해봅시다.
loglab version
0.3.3만약 기존에 설치된 loglab 을 최신 버전으로 업그레이드하고 싶다면, 다음과 같은
uv명령을 내리면 됩니다.uv tool upgrade loglab
소스 코드로 설치
최신 소스 코드를 기반으로 다음처럼 개발용으로 설치도 가능합니다.
git clone https://github.com/haje01/loglab
cd loglab
uv venv
source .venv/bin/activate
uv pip install -e .# 로그 스키마 확인
loglab show example/foo.lab.json
# 로그 파일 검증
loglab verify example/foo.lab.json example/foo.jsonl
# HTML 문서 생성
loglab html example/foo.lab.json -o docs.html
# 로그 객체 코드 생성 (TypeScript)
loglab object example/foo.lab.json ts -o loglab_foo.tsLogLab 은 지정된 JSON 형식으로 로그 스키마를 정의합니다.
{
"domain": {
"name": "foo",
"desc": "최고의 모바일 게임"
},
"events": {
"Login": {
"desc": "계정 로그인",
"fields": [
["ServerNo", "integer", "서버 번호"],
["AcntId", "integer", "계정 ID"]
]
}
}
}LogLab 으로 설계된 로그는 JSON Lines 형식으로 출력됩니다:
{"DateTime": "2021-08-13T20:20:39+09:00", "Event": "Login", "ServerNo": 1, "AcntId": 1000}
{"DateTime": "2021-08-13T20:21:01+09:00", "Event": "Logout", "ServerNo": 1, "AcntId": 1000}- 서비스를 위한 로그 설계가 필요한 개발자
- 로그를 처리하고 분석하는 데이터 엔지니어/분석가
- 조직에서 생성되는 로그의 형식을 일관되게 유지/공유하고 싶은 관리자
# 개발 환경 설정
git clone https://github.com/haje01/loglab.git
cd loglab
uv venv
uv pip install -e . -r requirements-dev.txt
# 테스트 실행
pytest tests/MIT License - 자세한 내용은 LICENSE 파일 참조
버그 리포트와 기능 제안은 Issues에서 환영합니다.