45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
import logging
|
|
import time
|
|
from logging.handlers import TimedRotatingFileHandler
|
|
import os
|
|
|
|
|
|
class Logger:
|
|
def __init__(self):
|
|
# log file folder
|
|
output_folder = r'./log/'
|
|
os.makedirs(output_folder, exist_ok=True)
|
|
# add self._log_filename to be ar_yyyyMMddHHmm.log
|
|
self._log_filename = os.path.join(output_folder, 'ar_{}.log'.format(time.strftime("%Y%m%d%H%M%S", time.localtime())))
|
|
logging.basicConfig()
|
|
# log format
|
|
self._formatter = logging.Formatter('%(asctime)s - %(process)d - %(levelname)s: %(message)s',
|
|
datefmt='%Y-%m-%d %H:%M:%S')
|
|
self._logger = logging.getLogger()
|
|
# self.set_console_logger()
|
|
self.set_file_logger()
|
|
self._logger.setLevel(logging.INFO)
|
|
|
|
def set_console_logger(self):
|
|
console_handler = logging.StreamHandler()
|
|
console_handler.setFormatter(self._formatter)
|
|
console_handler.setLevel(logging.INFO)
|
|
self._logger.addHandler(console_handler)
|
|
|
|
def set_file_logger(self):
|
|
log_file_handler = TimedRotatingFileHandler(filename=self._log_filename,
|
|
when="D",
|
|
interval=1,
|
|
backupCount=3,
|
|
encoding='utf-8')
|
|
log_file_handler.setFormatter(self._formatter)
|
|
log_file_handler.setLevel(logging.INFO)
|
|
# log_file_handler.suffix = "%Y%m%d_%H%M%S.log"
|
|
self._logger.addHandler(log_file_handler)
|
|
|
|
def get_logger(self):
|
|
return self._logger
|
|
|
|
|
|
logger = Logger().get_logger()
|