58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| """
 | |
| 
 | |
| 基于LOGGING封装日志记录器
 | |
| 
 | |
| """
 | |
| 
 | |
| # 加载模块
 | |
| 
 | |
| import logging
 | |
| 
 | |
| from logging.handlers import RotatingFileHandler
 | |
| 
 | |
| """
 | |
| 
 | |
| 类说明:封装日志记录器
 | |
| 
 | |
| """
 | |
| 
 | |
| 
 | |
| class Logger(object):
 | |
| 
 | |
|     def __init__(self, log_name: str):
 | |
| 
 | |
|         # 日志文件名称
 | |
|         self.log_name = f"{log_name}.log"
 | |
| 
 | |
|         # 创建日志记录器
 | |
|         self.logger = logging.getLogger(self.log_name)
 | |
|         self.logger.setLevel(logging.INFO)
 | |
| 
 | |
|         # 设置日志信息格式
 | |
|         self.formatter = logging.Formatter(
 | |
|             "%(asctime)s - %(levelname)s - %(message)s", datefmt="%y-%m-%d %H:%M:%S"
 | |
|         )
 | |
| 
 | |
|         # 控制台输出
 | |
|         self.stream_handle = logging.StreamHandler()
 | |
|         self.stream_handle.setLevel("INFO")
 | |
|         self.stream_handle.setFormatter(self.formatter)
 | |
| 
 | |
|         # 文件输出
 | |
|         self.file_handle = RotatingFileHandler(
 | |
|             filename=self.log_name, maxBytes=5 * 1024 * 1024, encoding="utf-8"
 | |
|         )
 | |
|         self.file_handle.setLevel("INFO")
 | |
|         self.file_handle.setFormatter(self.formatter)
 | |
| 
 | |
|         # 添加控制台和文件日志记录
 | |
|         if not self.logger.handlers:
 | |
|             self.logger.addHandler(self.stream_handle)
 | |
|             self.logger.addHandler(self.file_handle)
 | |
| 
 | |
|     def log(self, message):
 | |
| 
 | |
|         return self.logger.info(message)
 |