nugawiki

./categories/back-end

Python logging 모듈

업데이트 2026-07-21 조회수

레벨: DEBUG < INFO < WARNING < ERROR < CRITICAL (기본 root=WARNING).

basicConfig

import logging
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
    filename="dummy.log",  # 생략 시 콘솔
)
logging.info("hello")
logging.warning("warn")

Logger + Handler

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
fmt = logging.Formatter("%(asctime)s [%(levelname)s] %(name)s: %(message)s")

sh = logging.StreamHandler(); sh.setLevel(logging.INFO); sh.setFormatter(fmt)
fh = logging.FileHandler("debug.log"); fh.setLevel(logging.DEBUG); fh.setFormatter(fmt)
eh = logging.FileHandler("error.log"); eh.setLevel(logging.ERROR); eh.setFormatter(fmt)
logger.addHandler(sh); logger.addHandler(fh); logger.addHandler(eh)

try:
    1 / 0
except Exception:
    logger.exception("failed")

dictConfig

import json, logging.config
with open("logger.json") as f:
    logging.config.dictConfig(json.load(f))  # disable_existing_loggers: false

참고: logging HOWTO · Cookbook

image

| | | | | | | | | | | | | | | |

| | | | | | | | | | | | | | | |

| | | | | |

| | | | | |

| | | | | |

| | | | | |

| | | | | |

image

| | | | | |

| | | | | |

| | | | | |

| | | | | |

| | | | | |

| | | | | |

| | | | | |

image

./comments