python 中logging的日志封装
因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下:
封装部分
创建一个logutil2的py文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: zhangjun # @Date : 2018/7/26 9:20 # @Desc : Description import logging import logging.handlers import os import time class logs( object ): def __init__( self ): self .logger = logging.getLogger("") # 设置输出的等级 LEVELS = { 'NOSET' : logging.NOTSET, 'DEBUG' : logging.DEBUG, 'INFO' : logging.INFO, 'WARNING' : logging.WARNING, 'ERROR' : logging.ERROR, 'CRITICAL' : logging.CRITICAL} # 创建文件目录 logs_dir = "logs2" if os.path.exists(logs_dir) and os.path.isdir(logs_dir): pass else : os.mkdir(logs_dir) # 修改log保存位置 timestamp = time.strftime( "%Y-%m-%d" ,time.localtime()) logfilename = '%s.txt' % timestamp logfilepath = os.path.join(logs_dir,logfilename) rotatingFileHandler = logging.handlers.RotatingFileHandler(filename = logfilepath, maxBytes = 1024 * 1024 * 50 , backupCount = 5 ) # 设置输出格式 formatter = logging.Formatter( '[%(asctime)s] [%(levelname)s] %(message)s' , '%Y-%m-%d %H:%M:%S' ) rotatingFileHandler.setFormatter(formatter) # 控制台句柄 console = logging.StreamHandler() console.setLevel(logging.NOTSET) console.setFormatter(formatter) # 添加内容到日志句柄中 self .logger.addHandler(rotatingFileHandler) self .logger.addHandler(console) self .logger.setLevel(logging.NOTSET) def info( self , message): self .logger.info(message) def debug( self , message): self .logger.debug(message) def warning( self , message): self .logger.warning(message) def error( self , message): self .logger.error(message) |
2.调用模块
创建另外一个py文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: zhangjun # @Date : 2018/7/26 9:21 # @Desc : Description import logging logger = logging.getLogger(__name__) import logutil2 if __name__ = = '__main__' : logger = logutil2.logs() logger.info( "this is info" ) logger.debug( "this is debug" ) logger.error( "this is error" ) logger.warning( "this is warning" ) |
结果展示:
1.控制台输出
2.日志文件展示
创建目录
日志文件的写入
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架