<aside>
</aside>
μλ
νμΈμ! μ°λ¦¬λ μ§λ μκ° loguruλ₯Ό μ¬μ©ν΄ λ‘κ·Έλ₯Ό νμΌμ μ±κ³΅μ μΌλ‘ μ μ₯νμ΅λλ€. loguruκ° κΈ°λ³Έμ μΌλ‘ μ 곡νλ λ‘κ·Έ νμλ νλ₯νμ§λ§, νλ‘μ νΈμ νΉμ±μ΄λ νμ κ·μΉμ λ°λΌ λ‘κ·Έ νμμ λ°κΎΈκ³ μΆμ λκ° λΆλͺ
ν μμ κ±°μμ. ποΈ
μ΄λ² μ±ν°μμλ logger.add() ν¨μμ format νλΌλ―Έν°λ₯Ό μ¬μ©ν΄ λ‘κ·Έ λ©μμ§λ₯Ό μ°λ¦¬λ§μ μ€νμΌλ‘ 'λμμΈ'νλ λ°©λ²μ λ°°μλ΄
λλ€. λ§μΉ λ κ³ λΈλ‘μ 쑰립νλ―, loguruκ° μ 곡νλ λ€μν λ³μλ€μ μ‘°ν©νμ¬ κ°λ
μ± λκ³ μ μ©ν μ°λ¦¬λ§μ λ‘κ·Έ ν¬λ§·μ λ§λ€μ΄ λ³Ό κ±°μμ!
μ΄λ² μ±ν°λ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ κ±°μμ!
logger.add()μ format νλΌλ―Έν°λ₯Ό μ¬μ©νμ¬ λ‘κ·Έ μΆλ ₯ νμμ λ³κ²½ν μ μμ΅λλ€.{time}, {level}, {message} λ± μμ£Ό μ¬μ©λλ ν¬λ§· λ³μλ€μ μ΄ν΄νκ³ νμ©ν μ μμ΅λλ€.: <8)μ μ¬μ©νμ¬ λ‘κ·Έμ κ°λ
μ±μ λμΌ μ μμ΅λλ€.colorize=True)**μ μκ² λ©λλ€.custom_format.py νμΌμ μλ‘ μΆκ°νμ¬ μ€μ΅μ μ§νν©λλ€. μ½λλ₯Ό μ€ννλ©΄, μ°λ¦¬κ° λμμΈν λ©μ§ ν¬λ§·μΌλ‘ λ‘κ·Έκ° κΈ°λ‘λ custom_format.log νμΌμ΄ μμ±λ©λλ€.
νλ‘μ νΈ κ΅¬μ‘°
loguru-course/
βββ venv/
βββ ... (μ΄μ κ°μ νμΌλ€)
βββ custom_format.py <- μλ‘ μΆκ°λ νμΌ!
βββ custom_format.log <- μ½λ μ€ν ν μμ±λ νμΌ!
custom_format.py μ 체 μ½λ
# custom_format.py
import sys
from loguru import logger
# 1. κΈ°λ³Έ νΈλ€λ¬ μ κ±°
logger.remove()
# 2. μ°λ¦¬λ§μ 컀μ€ν
ν¬λ§·μ λ¬Έμμ΄λ‘ μ μν©λλ€.
# λ‘κ·Έ λ 벨μ 8μλ¦¬λ‘ λ§λ€κ³ μΌμͺ½ μ λ ¬(<)νμ¬ κ°λ
μ±μ λμ
λλ€.
# <green>, <level> κ°μ νκ·Έλ colorize=True μ΅μ
κ³Ό ν¨κ» μ¬μ©λ λ μμμ μ
νμ€λλ€.
log_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
)
# 3. νμΌ μ±ν¬: 컀μ€ν
ν¬λ§·μ μ μ©νλ, μμμ μ μΈλ©λλ€.
logger.add(
"custom_format.log",
format=log_format,
level="INFO"
)
# 4. μ½μ μ±ν¬: 컀μ€ν
ν¬λ§·κ³Ό ν¨κ» colorize=Trueλ‘ μμμ νμ±νν©λλ€.
logger.add(
sys.stderr,
format=log_format,
level="DEBUG",
colorize=True
)
def data_processing(item_id):
logger.debug(f"'{item_id}' μ²λ¦¬ μμ...")
# ... 볡μ‘ν λ°μ΄ν° μ²λ¦¬ λ‘μ§ ...
logger.info(f"'{item_id}' μ²λ¦¬ μλ£.")
if __name__ == "__main__":
logger.info("--- λ°μ΄ν° μ²λ¦¬ λ°°μΉ μμ
μμ ---")
data_processing("item-001")
data_processing("item-002")
logger.success("--- λͺ¨λ λ°°μΉ μμ
μ±κ³΅ ---")
format νλΌλ―Έν°: λ‘κ·Έμ μ²μ¬μ§ 그리기loguruμ logger.add() ν¨μμ formatμ΄λΌλ νλΌλ―Έν°λ₯Ό μΆκ°νλ©΄, λ‘κ·Έκ° μ΄λ€ λͺ¨μμΌλ‘ μΆλ ₯λ μ§ μ§μ λμμΈν μ μμ΅λλ€. μ΄ format νλΌλ―Έν°μ μ°λ¦¬κ° μνλ 'μ²μ¬μ§(ν
νλ¦Ώ λ¬Έμμ΄)'μ μ λ¬νκΈ°λ§ νλ©΄ λΌμ.