python 如何对logging日志封装


Posted in Python onDecember 02, 2020

作者:做梦的人(小姐姐)
出处:https://www.cnblogs.com/chongyou/

因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下:

封装部分

创建一个logutil2的py文件

#!/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文件

#!/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.控制台输出

python 如何对logging日志封装

2.日志文件展示

创建目录

python 如何对logging日志封装

日志文件的写入

python 如何对logging日志封装

以上就是python 如何对logging日志封装的详细内容,更多关于python logging日志封装的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
python实现多线程采集的2个代码例子
Jul 07 Python
Python利用ansible分发处理任务
Aug 04 Python
Python表示矩阵的方法分析
May 26 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
python实现浪漫的烟花秀
Jan 30 Python
python打开windows应用程序的实例
Jun 28 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
使用python模拟命令行终端的示例
Aug 13 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
python3中确保枚举值代码分析
Dec 02 #Python
python使用yaml 管理selenium元素的示例
Dec 01 #Python
python3处理word文档实例分析
Dec 01 #Python
python3中布局背景颜色代码分析
Dec 01 #Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 #Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 #Python
python录音并调用百度语音识别接口的示例
Dec 01 #Python
You might like
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
利用python修改json文件的value方法
2018/12/31 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
Delphi软件工程师试题
2013/01/29 面试题
传播学专业毕业生自荐信
2013/11/04 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
会计专业自我鉴定
2014/02/10 职场文书
岗位说明书范文
2014/05/07 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
合伙经营协议书范本
2014/09/13 职场文书
英语演讲开场白
2015/05/29 职场文书
2016公司新年问候语
2015/11/11 职场文书
外出培训学习心得体会
2016/01/18 职场文书