./categories/back-end
Python logging 모듈
레벨: 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

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

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

관련 링크: https://hwangheek.github.io/2019/python-logging/
./comments