<aside>
</aside>
λμ₯μ μ λμ μ€μ κ²μ μ§μ¬μΌλ‘ νμνκ³ , μΆνν©λλ€! μ°λ¦¬λ print()λ‘ λλ²κΉ
νλ μμ μ€ν¬λ¦½νΈμμ μμνμ¬, μ΄μ λ μ€μ€λ‘λ₯Ό κ΄λ¦¬νκ³ μΈλΆ μλΉμ€μ μ°λκΉμ§ κ°λ₯ν μμ μλνλ νλ‘λμ
λ‘κΉ
μμ€ν
μ ꡬμΆν μ μλ κ°λ°μλ‘ μ±μ₯νμ΅λλ€. μ¬λ¬λΆμ΄ νλ¦° λκ³Ό λ
Έλ ₯μ ν° λ°μλ₯Ό 보λ
λλ€! π
μ΄λ² λ§μ§λ§ μ±ν°μμλ μ°λ¦¬μ κΈΈμλ μ¬μ μ λμλ³΄κ³ , κ·Έ κ³Όμ μμ λ°°μ΄ ν΅μ¬ μ§μλ€μ μ λ¬Έκ°μ μκ°μμ **'λ‘κΉ
λ² μ€νΈ νλν°μ€(Best Practices)'**λ‘ μμΆνμ¬ μ λ¦¬ν΄ λ³΄κ² μ΅λλ€. λν, μ¬λ¬λΆμ΄ μ§μ λ§λ λΌμ΄λΈλ¬λ¦¬μ loguruλ₯Ό μ μ©ν λ μ§μΌμΌ ν μ€μν μν°μΌμ λ°°μ°κ³ , μμΌλ‘ λ‘κΉ
μ λ¬Έκ°λ‘μ λμκ° λ€μ λ¨κ³λ₯Ό μ μνλ©° μ΄ κ°μλ₯Ό λ§λ¬΄λ¦¬νκ² μ΅λλ€.
μ΄λ² μ±ν°λ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ μ΄μ loguruμ μ¬μ©μκ° μλ, 'λ‘κΉ
μ λ¬Έκ°'λ‘μ λ€μμ ν μ μκ² λ©λλ€.
print() νμΆλΆν° νλ‘λμ
μμ€ν
ꡬμΆκΉμ§, μ΄ κ°μμ μ 체 μ¬μ μ μμ½νκ³ μ±μ·¨κ°μ λλλλ€.loguruλ₯Ό μ¬μ©νλ μν°μΌμ μ΄ν΄ν©λλ€.loguruλ₯Ό λ κΉμ΄ νμ΅νκ³ , μ€μ νλ‘μ νΈμ μ μ©νκΈ° μν λ€μ λ¨κ³λ₯Ό κ³νν μ μμ΅λλ€.μ΄λ² μ±ν°λ κ°λ μ μ΄μ 리νλ μκ°μ΄μ§λ§, 'λΌμ΄λΈλ¬λ¦¬ λ‘κΉ μν°μΌ'μ μ€λͺ νκΈ° μν μ§§μ μμ μ½λλ₯Ό ν¨κ» λ΄ λλ€. μ€μ: λΌμ΄λΈλ¬λ¦¬μ μ¬μ©μμ μ±μ νμΌλ‘ λΆλ¦¬ν΄ μ€μ λμμ μ¬νν©λλ€.
νλ‘μ νΈ κ΅¬μ‘°
loguru-mastery/
βββ ... (μ΄μ κ°μ νμΌλ€)
βββ my_library.py <- λΌμ΄λΈλ¬λ¦¬(μ¬μ¬μ© λͺ¨λ)
βββ app.py <- λΌμ΄λΈλ¬λ¦¬ 'μ¬μ©μ'μ μ ν리μΌμ΄μ
μ½λ
my_library.py
# my_library.py
from loguru import logger
# λΌμ΄λΈλ¬λ¦¬λ κΈ°λ³Έμ μΌλ‘ 'μ‘°μ©ν' λμν©λλ€.
# λ¬Έμμ΄λ‘ λͺ¨λλͺ
μ κ³ μ νλ©΄, μ¬μ©μ μͺ½μμ κ°μ μ΄λ¦μΌλ‘ enable()νκΈ° μ¬μμ.
logger.disable("my_library") # λλ logger.disable(__name__)λ κ°λ₯
def some_useful_function():
"""
λΌμ΄λΈλ¬λ¦¬κ° μ 곡νλ μ μ©ν κΈ°λ₯.
λ΄λΆμ μΌλ‘λ λ‘κ·Έλ₯Ό λ¨κΈ°μ§λ§, κΈ°λ³Έμ μΌλ‘λ μΆλ ₯λμ§ μμ΅λλ€.
"""
logger.info("λ΄λΆ ν¨μκ° νΈμΆλμμ΅λλ€.")
return "Useful result"
# μ£Όμ: λΌμ΄λΈλ¬λ¦¬μμλ logger.add()/logger.remove()λ₯Ό νΈμΆνμ§ μμ΅λλ€.
# μ±ν¬/ν¬λ§·/λ 벨 μ€μ μ 'μ¬μ©μ μ±'μ΄ μ±
μμ§λλ€.
# app.py (λΌμ΄λΈλ¬λ¦¬ μ¬μ©μ)
import sys
from loguru import logger
import my_library
print("--- λΌμ΄λΈλ¬λ¦¬ λ‘κ±°κ° λΉνμ±νλ κΈ°λ³Έ μν ---")
my_library.some_useful_function()
print("-> μ무 λ‘κ·Έλ μΆλ ₯λμ§ μμ΅λλ€.")
print("\\n--- μ¬μ©μ μ±μμ λ‘κ±° κ΅¬μ± & νΉμ λΌμ΄λΈλ¬λ¦¬ νμ±ν ---")
logger.remove() # κΈ°λ³Έ νΈλ€λ¬ μ κ±°(μ ν)
logger.add(sys.stderr, level="INFO") # μ¬λμ΄ μ½μ μ½μ λ‘κ·Έ
# λΌμ΄λΈλ¬λ¦¬μ λͺ¨λλͺ
κ³Ό λμΌνκ² νμ±ν
logger.enable("my_library")
my_library.some_useful_function()
print("-> μ΄μ λΌμ΄λΈλ¬λ¦¬ λ΄λΆμ INFO λ‘κ·Έκ° μΆλ ₯λ©λλ€!")
ν νμΌμμ λ°λͺ¨νκ³ μΆλ€λ©΄, μλ¨μμ logger.disable(name)μ μΌλ€λ©΄ μλμμλ logger.enable(name)μ²λΌ κ°μ μ΄λ¦μ νμ±νν΄μΌ λ‘κ·Έκ° λ³΄μ λλ€.