思想不在一个高度没必要相互征服,你不信佛,寺庙也从来不缺上香的人。
日志方法封装,包括创建目录,日志级别分为调试日志、普通日志、警告日志、错误日志、关键日志。
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2024/07/16 22:11
# @Author : chb
# @File : my_log.py
import logging
import os
import time
base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LEVELS = {
'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL
}
logger = logging.getLogger()
level = 'default'
def create_file(file_path):
"""
文件路径不存在先创建文件路径,文件不存在创建文件
:param file_path: 文件绝对路径
:return:
"""
path = file_path[0:file_path.rfind('/')]
if not os.path.isdir(path):
os.makedirs(path)
if not os.path.isfile(file_path):
open(file_path, mode='w', encoding='utf-8').close()
class MyLog:
log_file = base_path+'/log/log.log'
err_file = base_path+'/log/err.log'
logger.setLevel(LEVELS.get(level, logging.NOTSET))
create_file(log_file)
create_file(err_file)
handler = logging.FileHandler(log_file, encoding='utf-8')
err_handler = logging.FileHandler(err_file, encoding='utf-8')
@classmethod
def set_handler(cls, levels):
if levels == 'error':
logger.addHandler(cls.err_handler)
logger.addHandler(cls.handler)
@classmethod
def remove_handler(cls, levels):
if levels == 'error':
logger.removeHandler(cls.err_handler)
logger.removeHandler(cls.handler)
@staticmethod
def get_current_time():
"""
获取当前时间,时间格式:'2020-12-12 12:12:12'
:return:
"""
return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
@classmethod
def debug(cls, log_meg):
"""
调试日志
:param log_meg: 日志内容
:return:
"""
cls.set_handler('debug')
logger.debug(f"{cls.get_current_time()} [DEBUG]: {log_meg}")
cls.remove_handler('debug')
@classmethod
def info(cls, log_meg):
"""
普通日志
:param log_meg: 日志内容
:return:
"""
cls.set_handler('info')
logger.info(f"{cls.get_current_time()} [INFO]: {log_meg}")
cls.remove_handler('info')
@classmethod
def warning(cls, log_meg):
"""
警告日志
:param log_meg: 日志内容
:return:
"""
cls.set_handler('warning')
logger.warning(f"{cls.get_current_time()} [WARNING]: {log_meg}")
cls.remove_handler('warning')
@classmethod
def error(cls, log_meg):
"""
错误日志
:param log_meg: 日志内容
:return:
"""
cls.set_handler('error')
logger.error(f"{cls.get_current_time()} [ERROR]: {log_meg}")
cls.remove_handler('error')
@classmethod
def critical(cls, log_meg):
"""
关键日志
:param log_meg: 日志内容
:return:
"""
cls.set_handler('critical')
logger.critical(f"{cls.get_current_time()} [CRITICAL]: {log_meg}")
cls.remove_handler('critical')
if __name__ == "__main__":
MyLog.debug("This is debug message")
MyLog.info("This is info message")
MyLog.warning("This is warning message")
MyLog.error("This is error message")
MyLog.critical("This is critical message")
如果感觉本文对您有帮助可以点个赞哦
本文为学习笔记,转载请标明出处
本文仅供交流学习,请勿用于非法途径
仅是个人意见,如有想法,欢迎留言