Skip to content

Instantly share code, notes, and snippets.

@jeakwon
Created March 2, 2019 09:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeakwon/36d6ba99758d074f8a5e87e2f69080b4 to your computer and use it in GitHub Desktop.
Save jeakwon/36d6ba99758d074f8a5e87e2f69080b4 to your computer and use it in GitHub Desktop.
Neat Logger
# -*- coding: utf-8 -*-
import logging.handlers
class Setting:
"""로거 세팅 클래스
::
Setting.LEVEL = logging.INFO # INFO 이상만 로그를 작성
"""
LEVEL = logging.DEBUG
FILENAME = "xingapi.log"
MAX_BYTES = 10 * 1024 * 1024
BACKUP_COUNT = 10
FORMAT = "%(asctime)s[%(levelname)s|%(name)s,%(lineno)s] %(message)s"
def Logger(name):
"""파일 로그 클래스
:param name: 로그 이름
:type name: str
:return: 로거 인스턴스
::
logger = Logger(__name__)
logger.info('info 입니다')
"""
# 로거 & 포매터 & 핸들러 생성
logger = logging.getLogger(name)
formatter = logging.Formatter(Setting.FORMAT)
streamHandler = logging.StreamHandler()
fileHandler = logging.handlers.RotatingFileHandler(
filename = Setting.FILENAME,
maxBytes = Setting.MAX_BYTES,
backupCount = Setting.BACKUP_COUNT)
# 핸들러 & 포매터 결합
streamHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
# 로거 & 핸들러 결합
logger.addHandler(streamHandler)
logger.addHandler(fileHandler)
# 로거 레벨 설정
logger.setLevel(Setting.LEVEL)
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment