본문 바로가기

Program

Python logging 함수간에 공유하여 사용하기

반응형

Python logging 함수간에 공유하여 사용하기

 

logging 함수를 이용하여 로그를 파일로 저장하도록 logger를 만들었다.

만약 해당함수가 test1.py이고 test2.py에서도 logging를 사용하고 싶다면 동일한 작업을 또 해줘야 할까?

logging.getLogger를 이용하여 test1.py에서 만든 logger를 test2.py에서 사용 할 수 있다.

 

import logging
from logging.handlers import RotatingFileHandler


logger = logging.getLogger(__name__)
fileHandler = RotatingFileHandler('./myLogger.log', maxBytes=1024*5, backupCount=5)
fileHandler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] [%(filename)s:%(lineno)s] >> %(message)s'))
logger.addHandler(fileHandler)
logger.setLevel(logging.DEBUG)


logger.debug("test debug log")
logger.info("info log")
logger.warning("warring !!!!")
logger.error("bug bug bug bug")
logger.critical("critical !! ~~")

[기본적인 logger 사용법]

 

 

TestLog.py에서 만든 logger를 TestLogSub.py에서 사용하는 방법

make_logger 함수가 logger 이름을 받도록 되어있다.

logging.getLogger 함수 호출시 인자로 등록된 이름을 공유하여

다른 .py에서도 logger를 공유해 사용 할 수 있다.

 

import logging
from logging.handlers import RotatingFileHandler
import TestLogSub


def make_logger(p_logger_name):
    m_logpath = '/usr/an/Log/' + p_logger_name + '.log'

    m_logger = logging.getLogger(p_logger_name)
    m_file_handler = RotatingFileHandler(m_logpath, maxBytes=1024 * 1024 * 1, backupCount=1)
    m_file_handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] [%(filename)s:%(lineno)s] >> %(message)s'))
    m_logger.addHandler(m_file_handler)
    m_logger.setLevel(logging.DEBUG)

    return m_logger


m_logger = make_logger('work_collect')
m_logger.debug("start work_collect")

TestLogSub.test_log()

[TestLog.py]

 

 

 

TestLogSub.py에서 getLogger 호출 시 인자로 전달된 이름과

TestLog.py에서 getLogger 인자로 전달 된 이름이 동일('work_collect')하다.

이름이 동일하면 make_logger에서 생성된 logger를

TestLogSub에서도 동일하게 공유하여 로그를 파일에 저장하게 된다.

import logging


def test_log():
    m_logger = logging.getLogger('work_collect')
    m_logger.debug("test")

[TestLogSub.py]

반응형

'Program' 카테고리의 다른 글

Pycharm을 이용하여 Python Virtualenv 개발 환경 구축  (0) 2020.11.24
CentOS 8에 MySQL 설치하기  (0) 2020.11.24
Python MySQL 사용법  (0) 2020.11.23
CentOS Python 3.6 설치  (0) 2018.09.03
ElasticSearch 쿼리  (0) 2018.06.18