일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 리액트 심플캡차
- 깃
- myBatis
- CI
- 스프링
- react 상태
- react 심플캡차
- react 캡차
- ChatGPT
- react captcha
- error
- 에러
- git
- 스프링 시큐리티
- spring security 로그인
- build
- maven
- react simple captcha
- 리액트 캡차
- Docker
- SpringBoot
- react 자동입력방지
- 젠킨스
- REACT
- 스프링 시큐리티 로그인
- spring error
- jpa
- Spring Security
- Spring Boot
- Security 로그인
- Today
- Total
I can do it(Feat. DEV)
[Log] 개발자 감성 저격🎯 터미널 로그에 색 입히는 법(feat. Python) 본문
터미널 로그도 이제 시각적으로 구분해서 디버깅하자! Python으로 로그를 색상별로 출력하는 방법을 알려드립니다.
📚 목차
- 텍스트 로그의 한계와 색상 적용 필요성
- ANSI 코드로 직접 색상 입히기
- rich 라이브러리로 쉽게 색상 출력하기
- print 함수 오버라이딩으로 전역 적용하기
- 타입별 색상 분리 출력 함수 만들기
- 실무에서 활용하는 컬러 로그 전략
- 컬러 로그를 위한 마무리 제안
텍스트 로그의 한계와 색상 적용 필요성
디버깅을 하다 보면 쏟아지는 로그 속에서 중요한 메시지를 놓치기 일쑤입니다. 😩 특히 콘솔에 찍히는 print()
로그가 모두 동일한 색이라면, 에러 메시지와 성공 메시지를 구분하기 어렵죠.
로그가 길어지면 눈 빠지게 찾아다녔던 경험이 있네요..😭
그래서 전 생각했어요. "중요한 로그는 색으로 구분되면 얼마나 좋을까?" 이런 배경에서 어떤 방법이 있는지 찾아보았고, ANSI 코드와 로그 스타일링 도구 등 여러 방법이 있다는 것을 알게 되었습니다. 저는 바로 직관적으로 사용할 수 있는 ANSI 코드로 설정을 해보았어요!
ANSI 코드로 직접 색상 입히기
가장 기본적이면서도 즉시 효과를 볼 수 있는 방법입니다.
print("\033[92m[SUCCESS] 작업이 완료되었습니다.\033[0m")
print("\033[91m[ERROR] 문제가 발생했습니다.\033[0m")
색상 코드 예시:
- 🔴
\033[91m
: 빨간색 - 🟢
\033[92m
: 초록색 - 🟡
\033[93m
: 노란색 - 🔵
\033[94m
: 파란색 - ⚪
\033[0m
: 색상 초기화
rich 라이브러리로 쉽게 색상 출력하기
rich
를 쓰면 훨씬 간단하게 컬러 로그를 출력할 수 있어요.
pip install rich
from rich import print
print("[bold green]✔ 작업 완료[/]")
print("[bold red]✖ 오류 발생[/]")
print 함수 오버라이딩으로 전역 적용하기
# custom_print.py
def print_colored(*args, **kwargs):
print("\033[96m", end="") # 청록
print(*args, **kwargs)
print("\033[0m", end="") # 리셋
from custom_print import print_colored as print
print("이건 자동으로 색상이 적용됩니다!")
처음에는 전체 로그를 하나의 색으로 지정해서 변경했었는데, 뭔가 message와 value를 다른 값으로 찍으면 더 좋을 것 같아서 수정했어요!
타입별 색상 분리 출력 함수 만들기
def custom_log(message: str, value = None, level: str = "debug") -> None:
"""
print 함수에 색상을 추가하는 함수
"""
COLORS = {
"debug": "\033[95m", # 밝은 보라
"info": "\033[34m", # 파랑? 보라
"success": "\033[92m", # 밝은 초록
"warning": "\033[93m", # 밝은 노랑
"error": "\033[91m", # 밝은 빨강
"value": "\033[96m", # 청록 (value용 고정)
"default": "\033[0m", # 초기화 (기본)
}
level_color = COLORS.get(level.lower(), COLORS["default"])
value_color = COLORS["value"]
print(f"{level_color}[{level.upper()}] {message}", f"{value_color}{value}")
색은 커스텀하게 원하시는 색으로 정하면 될 것 같아요! 저는 이런 식으로 간단하게 작성했습니다!
실무에서 활용하는 컬러 로그 전략
- ✅ 성공: 초록
- ⚠ 경고: 노랑
- ❌ 에러: 빨강
- ℹ 정보: 파랑
- 🧪 디버그: 보라
혹시 몰라 알아보았지만! 정하기 나름이겠죠?!
컬러 로그를 위한 마무리 제안
- 단순한 디버깅은 ANSI 코드로 충분
- 시스템 로그는 헬퍼 함수로 정리
- 시각적으로 깔끔한 출력은
rich
추천 - 팀 프로젝트라면 컬러 기준을 문서화
자주 묻는 질문들 (FAQ)
Q1. ANSI 코드는 윈도우에서도 잘 작동하나요?
A1. 최신 Windows Terminal에서는 잘 작동합니다. 구형 CMD에서는 colorama
모듈을 설치해보세요.
Q2. 로그 색상을 레벨에 따라 자동 적용할 수 있나요?
A2. 네! 위의 log()
함수를 사용하면 자동 적용됩니다.
Q3. 팀 프로젝트에서도 사용해도 괜찮을까요?
A3. 물론입니다! 메시지 분류가 쉬워지고 협업에도 좋아요.
Q4. JSON도 색상 출력 가능한가요?
A4. 가능합니다. from rich import print_json
을 사용해 보세요.
여러분은 어떻게 로그를 출력하고 계신가요?
print()
에 색상 코드 써보신 적 있나요? 혹시 아직도 흑백 로그만 사용하고 계신가요? 댓글로 여러분의 로그 출력 방식이나 꿀팁을 공유해 보세요 😊
📝 에필로그
예전엔 저도 단순히 print("에러 발생")
만 찍었었는데, 지금은 칙칙한 터미널에 알록달록 로그를 단번에 확인할 수 있네요! 다음엔 Python rich로 로그 테이블 출력하기도 사용해 보고 소개해드릴게요!
'개발자 모드 > 응용' 카테고리의 다른 글
[Django Silk]로 성능 최적화 및 분석 시작하기! (0) | 2025.03.12 |
---|---|
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[4편] (1) | 2024.09.13 |
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[3편] (2) | 2024.09.12 |
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[2편] (0) | 2024.09.12 |
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[1편] (2) | 2024.09.11 |