I can do it(Feat. DEV)

[Log] 개발자 감성 저격🎯 터미널 로그에 색 입히는 법(feat. Python) 본문

개발자 모드/응용

[Log] 개발자 감성 저격🎯 터미널 로그에 색 입히는 법(feat. Python)

까짓거 해보자 개발자 2025. 4. 1. 16:46
728x90

 

 

터미널 로그도 이제 시각적으로 구분해서 디버깅하자! Python으로 로그를 색상별로 출력하는 방법을 알려드립니다.

📚 목차

  1. 텍스트 로그의 한계와 색상 적용 필요성
  2. ANSI 코드로 직접 색상 입히기
  3. rich 라이브러리로 쉽게 색상 출력하기
  4. print 함수 오버라이딩으로 전역 적용하기
  5. 타입별 색상 분리 출력 함수 만들기
  6. 실무에서 활용하는 컬러 로그 전략
  7. 컬러 로그를 위한 마무리 제안

텍스트 로그의 한계와 색상 적용 필요성

디버깅을 하다 보면 쏟아지는 로그 속에서 중요한 메시지를 놓치기 일쑤입니다. 😩 특히 콘솔에 찍히는 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로 로그 테이블 출력하기도 사용해 보고 소개해드릴게요!

728x90