随便封装下log
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = logging工具类 __Time__ = 2019/8/8 19:26 """ import logging import os import sys import time from logging import handlers class Loggers: __instance = None def __new__(cls, *args, **kwargs): if not cls.__instance: cls.__instance = object.__new__(cls, *args, **kwargs) return cls.__instance def __init__(self): # 设置输出格式 formater = logging.Formatter( '[%(asctime)s]-[%(levelname)s]-[%(filename)s]-[%(funcName)s:%(lineno)d] : %(message)s') # 定义一个日志收集器 self.logger = logging.getLogger('log') # 设定级别 self.logger.setLevel(logging.DEBUG) # 获取文件名 now = time.strftime( '%Y%m%d%H', time.localtime(time.time())) + '.log' execfile = sys.argv[0] if "/" in execfile: pre = execfile[sys.argv[0].rindex("/") + 1:sys.argv[0].rindex(".")] else: pre = execfile[0:sys.argv[0].rindex(".")] path = os.path.join(sys.path[0], 'log') if os.path.exists(path) == False: os.mkdir(path) logfilename = os.path.join(path, pre + now) # 输出渠道一 - 文件形式 self.fileLogger = handlers.RotatingFileHandler(logfilename, maxBytes=5242880, backupCount=3, encoding="utf-8") # 输出渠道二 - 控制台 self.console = logging.StreamHandler() # 控制台输出级别 self.console.setLevel(logging.DEBUG) # 输出渠道对接输出格式 self.console.setFormatter(formater) self.fileLogger.setFormatter(formater) # 日志收集器对接输出渠道 self.logger.addHandler(self.fileLogger) self.logger.addHandler(self.console) # def debug(self, msg): # self.logger.debug(msg=msg) # # def info(self, msg): # self.logger.info(msg=msg) # # def warn(self, msg): # self.logger.warning(msg=msg) # # def error(self, msg): # self.logger.error(msg=msg) # # def excepiton(self, msg): # self.logger.exception(msg=msg) def getLog(self): return self.logger
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2018-01-30 spring在非容器管理的类里获取bean
2018-01-30 spring mvc全局异常处理
2018-01-30 spring mvc URL忽略大小写
2018-01-30 spring mvc支持跨域请求
2016-01-30 webapi之jsonp调用
2016-01-30 jsonp调用webapi和mvc