Files
-------/PyCharmMiscProject/log.py
T
2026-09-19 15:00:19 +08:00

35 lines
2.0 KiB
Python

'''
①模块里调用了logging日志模块,定义一个类Log
②Log类里定义了初始化方法__init__(),初始化方法需要入两个参数,一个是日志器的名字name,一个是日志等级level,实例属性self.logName用来接收实例化的日志器的名字,需要其他属性时自己定义即可
③定义logFile()方法,实例对象调用该方法时,需要入参文件名字fileName,调用该方法就启用日志器信息输出到指定的文件名里,日志的信息格式统一都是"年月日时分秒 - 日志器名字 - 日志等级 - 日志信息",输入的字符集编码写死成utf-8即可
④定义logConsol()方法,实例对象调用该方法时,调用该方法就启用日志器信息输出到控制台,日志的信息格式统一都是"年月日时分秒 - 日志器名字 - 日志等级 - 日志信息"
⑤最后定义一个message()方法,两个形参,一个形参接收日志级别,一个形参接收日志信息,实例调用该方法时,输出不同的日志级别信息
'''
import logging
class Log:
def __init__(self,name,level):
self.logger = logging.getLogger(name)
self.level = level.upper()
self.log_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S')
def logFile(self,filename):
if self.logger.handlers:
self.logger.handlers.clear()
self.logger.setLevel(eval(f'logging.{self.level}'))
file_handler = logging.FileHandler(filename,mode='a',encoding='utf-8')
file_handler.setFormatter(self.log_formatter)
self.logger.addHandler(file_handler)
def logConsol(self):
if self.logger.handlers:
self.logger.handlers.clear()
self.logger.setLevel(eval(f'logging.{self.level}'))
consol_handler = logging.StreamHandler()
consol_handler.setFormatter(self.log_formatter)
self.logger.addHandler(consol_handler)
def message(self,lvmes,mes):
getattr(self.logger,lvmes.lower())(mes)