You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.3 KiB

11 months ago
import logging
'''
日志记录方案暂时使用logger来实现--2024-5-25-zl
'''
class MyLogger:
_loggers = {}
def __new__(cls, name='my_logger', level=logging.DEBUG):
if name not in cls._loggers:
cls._loggers[name] = super().__new__(cls)
return cls._loggers[name]
def __init__(self, name='my_logger', level=logging.DEBUG): #logging.INFO
if not hasattr(self,'logger'):
self.logger = logging.getLogger(name)
self.logger.setLevel(level)
# 创建一个handler,用于写入日志文件
file_handler = logging.FileHandler('../log/my_app.log')
file_handler.setLevel(logging.info)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
self.logger.addHandler(console_handler)
def info(self, message):
self.logger.info(message)
def error(self, message):
self.logger.error(message)
def warning(self, message):
self.logger.warning(message)
def debug(self, message):
self.logger.debug(message)
# 使用示例
if __name__ == "__main__":
logger = MyLogger()
logger.info("This is an info message")
logger.error("This is an error message")