<aside>
</aside>
μλ νμΈμ! μ΄μ μ°λ¦¬λ λ‘κ·Έλ₯Ό νμΌμ μμ μ μΌλ‘ μ μ₯ν μ μκ² λμμ΅λλ€. νμ§λ§ μ΄λλ‘ κ³μ λλ€λ©΄ μ΄λ»κ² λ κΉμ? μκ°μ΄ νλ₯΄λ©΄μ λ‘κ·Έ νμΌμ μ μ μ»€μ Έμ, λμ€μλ λμ€ν¬ 곡κ°μ λͺ¨λ μ°¨μ§ν΄λ²λ¦¬λ '곡룑 νμΌ'μ΄ λ μλ μμ΄μ! π¦
μ΄λ² μ±ν°μμλ μ΄λ κ² λ‘κ·Έ νμΌμ΄ 무νμ 컀μ§λ κ²μ λ°©μ§ν΄μ£Όλ loguruμ μμ£Ό λλν κΈ°λ₯, **'νμ (Rotation)'**μ λν΄ λ°°μλ΄
λλ€. logger.add()μ λ¨ νλμ νλΌλ―Έν°λ§ μΆκ°ν΄μ, νμΌ ν¬κΈ°λ μκ°μ λ°λΌ loguruκ° μ€μ€λ‘ λ‘κ·Έ νμΌμ λΆλ¦¬νκ³ κ΄λ¦¬νκ² λ§λλ λ§λ²μ κ²½νν΄ λ³΄μΈμ!
μ΄λ² μ±ν°λ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ κ±°μμ!
logger.add()μ rotation νλΌλ―Έν°λ₯Ό μ¬μ©νμ¬ μλ νμ κΈ°λ₯μ μ€μ ν μ μμ΅λλ€.rotation="10 MB") λ‘κ·Έ νμΌμ νμ μν¬ μ μμ΅λλ€.rotation="00:00", rotation="1 week") λ‘κ·Έ νμΌμ νμ μν¬ μ μμ΅λλ€.log_rotation.py νμΌμ μλ‘ μΆκ°νμ¬ μ€μ΅ν©λλ€. μ΄ μ½λλ₯Ό μ€ννλ©΄, ν¬κΈ° κΈ°λ° νμ μ ν
μ€νΈνλ©΄μ μ¬λ¬ κ°μ λ‘κ·Έ νμΌ(size_log.log, size_log.log.1 λ±)μ΄ μλμΌλ‘ μμ±λλ κ²μ λ³Ό μ μμ΅λλ€.
νλ‘μ νΈ κ΅¬μ‘°
loguru-course/
βββ venv/
βββ ... (μ΄μ κ°μ νμΌλ€)
βββ log_rotation.py <- μλ‘ μΆκ°λ νμΌ!
βββ size_log.log <- μ½λ μ€ν ν μμ±λ νμΌλ€!
βββ size_log.log.1
βββ size_log.log.2
βββ ...
log_rotation.py μ 체 μ½λ
# log_rotation.py
import time
from loguru import logger
# --- Part 1: ν¬κΈ° κΈ°λ° νμ (Size-based Rotation) ---
# λ‘κ·Έ νμΌμ΄ 500 λ°μ΄νΈ(B)λ₯Ό μ΄κ³Όνλ©΄, κΈ°μ‘΄ νμΌμ .1, .2, ... λ‘ λ°±μ
νκ³ μ νμΌμ μμ±ν©λλ€.
# μ€μ΅μ μν΄ λ§€μ° μμ μ©λμΌλ‘ μ€μ νμ΅λλ€.
logger.add("size_log.log", rotation="500 B")
print("--- ν¬κΈ° κΈ°λ° νμ ν
μ€νΈ μμ ---")
print("100κ°μ λ‘κ·Έλ₯Ό λΉ λ₯΄κ² κΈ°λ‘νμ¬ νμΌμ΄ λΆλ¦¬λλ κ²μ νμΈν©λλ€.")
for i in range(100):
logger.info(f"μ΄κ²μ {i+1}λ²μ§Έ λ‘κ·Έ λ©μμ§μ
λλ€. μ΄ λ©μμ§λ μΆ©λΆν κΉλλ€.")
time.sleep(0.01) # λ무 λΉ λ₯Έ μ€νμ λ°©μ§νκΈ° μν μ½κ°μ λλ μ΄
print("--- ν¬κΈ° κΈ°λ° νμ ν
μ€νΈ μ’
λ£ ---")
print("νλ‘μ νΈ ν΄λμμ 'size_log.log'λ‘ μμνλ νμΌλ€μ νμΈν΄λ³΄μΈμ!")
# --- Part 2: μκ° κΈ°λ° νμ (Time-based Rotation) ---
# μλ μ€μ λ€μ μ§κΈ λΉμ₯ νμΌμ΄ νμ λμ§λ μμ§λ§,
# νΉμ μκ°μ΄ λλ©΄ loguruκ° μλμΌλ‘ νμΌμ λΆλ¦¬ν΄μ€λ€λ κ²μ 보μ¬μ€λλ€.
# λ§€μΌ μμ ("00:00")μ λ‘κ·Έ νμΌμ νμ μν΅λλ€.
# νμ λ νμΌ μ΄λ¦μλ λ μ§κ° ν¬ν¨λ©λλ€. (e.g., time_log.2025-09-02.log)
logger.add("time_log.log", rotation="00:00")
# λ§€μ£Ό μμμΌμ λ‘κ·Έ νμΌμ νμ μν΅λλ€. (μμμΌ μ€νμ)
logger.add("weekly_log.log", rotation="1 week")
# 3μΌλ§λ€ λ‘κ·Έ νμΌμ νμ μν΅λλ€.
logger.add("interval_log.log", rotation="3 days")
logger.info("μκ° κΈ°λ° λ‘ν
μ΄μ
μ€μ μ΄ μλ£λμμ΅λλ€.")
print("\\n'time_log.log', 'weekly_log.log' λ±μ νμΌμ΄ μμ±λμμ΅λλ€.")
print("μ΄ νμΌλ€μ μ€μ λ μκ°μ΄ λλ©΄ μλμΌλ‘ μλ‘μ΄ νμΌλ‘ λΆλ¦¬(νμ )λ©λλ€.")
νλμ λ‘κ·Έ νμΌμ λͺ¨λ κΈ°λ‘μ κ³μ μλ κ²μ μ¬λ¬ λ¬Έμ λ₯Ό μΌμΌμΌμ.