logging
utils/log.py
import loggingimport os# 1. 创建一个loggerlogger = logging.getLogger('simple_example')logger.setLevel(logging.DEBUG) # Log等级总开关# 2.控制台的handlerch = logging.StreamHandler()ch.setLevel(logging.DEBUG)# 3. 写入文件的handlerroot_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))fh = logging.FileHandler(filename=os.path.join(root_dir, 'log/run.log'), encoding='utf-8')# 4. 定义handler的输出格式format ='%(asctime)s - %(filename)s - %(lineno)d - %(name)s - %(levelname)s - %(message)s'formatter = logging.Formatter(fmt=format)ch.setFormatter(formatter)fh.setFormatter(formatter)# 将logger添加到handler里面logger.addHandler(ch)logger.addHandler(fh)
调用:
import pymysqlfrom utils.log import loggerlogger.error('数据库连接失败')
loguru
utils/Loggings.py
import osfrom loguru import loggerclass Loggings:root_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))filename = os.path.join(root_dir, 'log/run.log')__instance = Nonelogger.add(sink=filename, # 写入文件路径rotation="500MB",encoding="utf-8",enqueue=True,retention="10 days")def __new__(cls, *args, **kwargs):if not cls.__instance:cls.__instance = super(Loggings, cls).__new__(cls, *args, **kwargs)return cls.__instancedef info(self, msg):return logger.info(msg)def debug(self, msg):return logger.debug(msg)def warning(self, msg):return logger.warning(msg)def error(self, msg):return logger.error(msg)
调用:
from utils.Loggings import Loggingslog = Loggings()log.info('this is a info')
