import os
import logging
from logging.handlers import RotatingFileHandler
class LOG(object):
def __init__(self):
self.dir = os.path.dirname(__file__)
self.__loggers = {}
handlers = {
logging.INFO: os.path.join(self.dir, 'log1.log'),
logging.DEBUG: os.path.join(self.dir, 'log2.log'),
}
formatter = logging.Formatter('[%(asctime)s] - [%(levelname)-4s] - %(message)s')
for level in handlers.keys():
path = os.path.abspath(handlers[level])
handlers[level] = RotatingFileHandler(path, maxBytes=1024*1024*2, backupCount=5, encoding='utf-8')
handlers[level].setFormatter(formatter)
logger = logging.getLogger(str(level))
logger.addHandler(handlers[level])
logger.setLevel(level)
self.__loggers.update({level: logger})
def info(self, message):
self.__loggers[logging.INFO].info(message)
def debug(self, message):
self.__loggers[logging.DEBUG].debug(message)
if __name__ == "__main__":
logger = LOG()
logger.debug("This is the debug message")
logger.info("This is the info message")
上述代码自定义了一个日志类:‘LOG’,它使用了Python的logging模块和RotatingFileHandler,具体分析如下:
总结:该代码的作用是封装了一个自定义的日志类 LOG,它将不同级别的日志消息记录到不同的文件中。使用了 RotatingFileHandler 来管理日志文件的轮换和大小控制。在使用 LOG 类时,可以通过调用 info 和 debug 方法记录相应级别的日志消息。