import logging
import logging.handlers
import os, time
class cnlog(object):
def __init__(self):
# 获得一个logger对象
self.myLogger = logging.getLogger('mylogger')
self.myLogger.setLevel(logging.DEBUG)
def Init_log(self, log_path, log_name, base_path='Logs'):
log_path = os.path.join(os.path.dirname(__file__), base_path, log_path)
# log_path = os.path.dirname(__file__) + '/Logs/'
log_path_isExist = os.path.isdir(log_path)
print(log_path_isExist)
if (log_path_isExist == False):
os.makedirs(log_path)
log_name = os.path.join(log_path, log_name)
# 添加TimedRotatingFileHandler
# 定义一个1秒换一次log文件的handler
# 保留3个旧log文件
fh = logging.handlers.TimedRotatingFileHandler(filename=log_name, when='S', interval=1, backupCount=3)
# 设置日志等级
fh.setLevel(logging.DEBUG)
# 定义输出流header,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 设置日志格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 为日志对象添加header
self.myLogger.addHandler(fh)
self.myLogger.addHandler(ch)
self.myLogger.debug('Log config is done...')
return self.myLogger
if __name__ == '__main__':
obj = cnlog()
log = obj.Init_log('task1', 'task1.log')
while True:
log.debug('hello')
time.sleep(1)