import logging
import os
from logging.handlers import TimedRotatingFileHandler
from config import LOG_LEVEL
if not os.path.exists('logs'):
os.mkdir('logs')
logging.basicConfig(format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s')
class LogFileHandler(object):
def __init__(self, name, log_level=LOG_LEVEL):
if not name.endswith('.logs'):
name = name + '.log'
file_name = os.path.join('logs', name)
handler = logging.handlers.RotatingFileHandler(file_name, maxBytes=100*1024*1024, backupCount=3,)
handler.setFormatter(
logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s'))
handler.suffix = "%Y%m%d.task"
handler.mode = 'a'
handler.setLevel(log_level)
print(handler)
self._handler = handler
def get_handler(self):
return self._handler
def get_logger(p_name, f_name, log_level=LOG_LEVEL):
logger = logging.getLogger(p_name)
logger.setLevel(log_level)
logger.addHandler(LogFileHandler(f_name).get_handler())
return logger
if __name__ == '__main__':
log = get_logger('test', '1111')
try:
1/0
except Exception as e:
log.exception(e)