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)
|